如何发送使用ExtJS ComboBox生成的两个值

时间:2018-10-02 16:47:08

标签: extjs

我创建了以下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'));
            }
        }
    }, {

1 个答案:

答案 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)
    },
})