如何在ExtJS4中提交组合框的fieldValue?

如何在ExtJS4中提交组合框的fieldValue?,extjs,extjs4,Extjs,Extjs4,我正在使用Extjs 4.0.7,很难在formPanel中获得一个combobox,以提交combobox上所选选项的字段值 据我所知,这通常是通过将hiddenNameconfiguration选项设置为您希望它提交值的值来实现的;就像在html中使用隐藏字段一样,但是hiddenName选项现在似乎从文档中删除了,没有任何明显的替代选项 那么,我如何继续提交带有extjs4中valueField值的formPanel 这是我的应用程序中的一个片段,我在其中定义了一个组合框: xtype:

我正在使用Extjs 4.0.7,很难在
formPanel
中获得一个
combobox
,以
提交
combobox
上所选选项的
字段值

据我所知,这通常是通过将
hiddenName
configuration选项设置为您希望它提交值的值来实现的;就像在html中使用隐藏字段一样,但是
hiddenName
选项现在似乎从文档中删除了,没有任何明显的替代选项

那么,我如何继续提交带有extjs4中
valueField
值的
formPanel

这是我的应用程序中的一个片段,我在其中定义了一个组合框:

xtype: 'combobox',
        name: 'shift',
        hiddenName: 'shiftid',
        id: 'shiftCombobox',
        fieldLabel: 'Shift',
        labelWidth: 30,
        width: 130,
        margin: '0 5',
        cls: 'shift',
        store: shiftStore, 
        autoSelect: true,
        queryMode: 'local',
        displayField: 'name',
        valueField: 'objectid',
        autoSelect: true,
        handler: function() {
            //changeShift(); 
        }
这就是
shiftStore
使用的模型:

Ext.define('shiftModel', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'objectid', type: 'int'},
        {name: 'name', type: 'string'}
    ]
});

我忘记了这个代码:

autoLoad: {
        //The callback here is needed to fix a bug and set a default value in the combobox. 
        scope: this,
        callback: function() {
            var comboBox = Ext.getCmp("teamCombobox");
            var store = comboBox.store;

            // set the value of the comboBox here
            comboBox.setValue(store.getAt('0').get('name'));
        }
    }
它更新了
组合框
存储的
自动加载
上的
组合框
,以便在加载时使用默认值。 我已经将值设置为name,这是
displayValue
。将该值设置为相应的
字段值
,在我的例子中是一个名为objectid的字段

我这样设置后,它会工作:

comboBox.setValue(store.getAt('0').get('objectid'));
现在,
combox
提交的是真实的
fieldValue
,而不是我意外设置的文本值


我还是想知道是否有办法控制这种情况

我忘记了这个代码:

autoLoad: {
        //The callback here is needed to fix a bug and set a default value in the combobox. 
        scope: this,
        callback: function() {
            var comboBox = Ext.getCmp("teamCombobox");
            var store = comboBox.store;

            // set the value of the comboBox here
            comboBox.setValue(store.getAt('0').get('name'));
        }
    }
它更新了
组合框
存储的
自动加载
上的
组合框
,以便在加载时使用默认值。 我已经将值设置为name,这是
displayValue
。将该值设置为相应的
字段值
,在我的例子中是一个名为objectid的字段

我这样设置后,它会工作:

comboBox.setValue(store.getAt('0').get('objectid'));
现在,
combox
提交的是真实的
fieldValue
,而不是我意外设置的文本值


我还是想知道是否有办法控制这种情况

我找到了解决办法,但还不能回答我自己的问题。请随意发布一个可靠的方法来控制提交的内容,虽然有解决方案。我找到了解决方案,但还不能回答我自己的问题。请随意发布一个可靠的方法来控制提交的解决方案。