ExtJS:如何同时提交:组合框值和文本
Posted
技术标签:
【中文标题】ExtJS:如何同时提交:组合框值和文本【英文标题】:ExtJS: How to submit both: combobox value and text 【发布时间】:2011-03-24 17:32:36 【问题描述】:ExtJS:如何同时提交:组合框值和使用标准提交的文本?
【问题讨论】:
【参考方案1】:要提交 valueField,您必须指定 hiddenName
以创建隐藏输入字段来保存 valueField 的值。您还必须将 submitValue
设置为 true
例如
var unitField = new Ext.form.ComboBox(
id:'unitField',
name: 'unit',
submitValue : true,
fieldLabel: 'Unit',
store:unitStore,
mode: 'remote',
displayField: 'name',
valueField: 'id',
hiddenName : 'unitId',
allowBlank: false,
anchor:'95%',
triggerAction: 'all'
);
所以你得到作为 unitId 发送的值和作为单位发送的文本
【讨论】:
由于某种原因,我没有在字段集合中获得单位!? UnitId 没问题。 如果我注释掉 hiddenName : 'unitId',那么我会得到 'unit' 字段,但当然没有 'unitId'。 您还需要在配置选项中添加 submitValue: true 。我已经更新了答案。 From Docs - submitValue : Boolean False 清除字段上的 name 属性,以便在表单发布期间不提交。如果指定了 hiddenName,将其设置为 true 将导致隐藏字段和元素都被提交。 这对 EXTJS 5 有效吗?它对我不起作用,但在文档中仍然可用。这还存在吗?【参考方案2】:如果您想提交两个值,则需要两个字段。如果您希望两个字段都由一个字段控制,您应该隐藏一个字段,并在第一个字段更新时更新它:
var hiddenField = new Ext.form.Hidden(
name: 'comboDisplay'
);
var combo = new Ext.form.ComboBox(
xtype: 'combo',
// ...
listeners:
select: function(combo, record)
hiddenField.setValue(record.data['display']);
);
【讨论】:
你的方法是正确的。但这还不是完整的答案。请注意,如果要在米兰在他的问题中提到的标准提交上提交 valueField,您还需要一个 hiddenName。以上是关于ExtJS:如何同时提交:组合框值和文本的主要内容,如果未能解决你的问题,请参考以下文章
Extjs:如何从控制器设置额外参数以在商店中用于填充组合框值。想要将额外参数值设置为 abc.1-cond1、abc.2-con2