我创建了以下extjs组合框,供用户通过API调用更改项目。我有一个特定的tpl以选择列表填充时可以正常工作的格式显示值。我有displayField显示用户何时从列表中选择一个项目,这也很棒。问题是,当用户选择一个项目并提交时,我需要从该选择中提取2个值。一个值为gmiExchangeCode,另一个值为gmiFuturesCode。用户提交时,我需要能够同时获得这两个值。下面的代码仅发送gmiDescription
}, {
xtype: 'combo',
autoLoad: true,
hideTrigger: true,
fieldLabel: 'Product',
displayField: 'gmiDescription',
hiddenName: 'gmiExchangeCode',
valuefield: 'gmiExchangeCode',
forceSelection: true,
submitValue: true,
name: 'exchange',
queryMode: 'remote',
queryParam: 'entry',
typeAhead: true,
minChar: 2,
tpl: new Ext.XTemplate('*****'),
store: {
fields: ['text', 'value'],
proxy: {
type: 'ajax',
url: '*****',
reader: {
type: 'json'
}
},
sorters: [{
property: 'exchange',
direction: 'ASC'
}]
},
listeners: {
select: function (combo, record, index) {
exchangeCode.setValue(record.get('exchangeCode'));
}
}
}, {
答案 0 :(得分:0)
默认情况下,表单提交仅发送所有值的表单元素(无额外字段)。
要发送第二个值,您可以创建一个隐藏的表单字段并进行设置(请参见eslint docs),这样,该隐藏字段也将被提交
另一种解决方法是从Sencha ExtJS Submit two values
向传递动作(如果是手动触发)传递一些额外的参数要传递的其他参数值。这些被添加到表单的 Ext.form.Basic#baseParams,并与指定的URL一起传递给 表单的输入字段。
form.getForm().submit({
url: 'panel.php',
params: {
data: Ext.encode(json)
},
})