EXTJS combo提交值的问题

EXTJS2.2的版本Combo如果通过form.getForm().getValues()获取不了显示值的问题

只需重写onrender方法 注释掉一行代码即可

Ext.override(Ext.form.ComboBox,{
    onRender : function(ct, position){
        Ext.form.ComboBox.superclass.onRender.call(this, ct, position);
        if(this.hiddenName){
            this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName,
                    id: (this.hiddenId||this.hiddenName)}, 'before', true);

            // prevent input submission
            //this.el.dom.removeAttribute('name'); 此行getValues()当name为空时,被省略了。
        }
        if(Ext.isGecko){
            this.el.dom.setAttribute('autocomplete', 'off');
        }

        if(!this.lazyInit){
            this.initList();
        }else{
            this.on('focus', this.initList, this, {single: true});
        }

        if(!this.editable){
            this.editable = true;
            this.setEditable(false);
        }
    }
})

 

Extjs3.3 有个submitValue 只需把它设置为true.通过form.getForm().getValues()都能取得。

    var store = new Ext.data.SimpleStore({
        fields: ['abbr', 'state', 'nick'],
        data : Ext.exampledata.states // from states.js
    });
    var combo = new Ext.form.ComboBox({
        store: store,
        displayField:'state',
        valueField:'abbr',
        hiddenName:'state1',
        typeAhead: true,
         submitValue:true,
        mode: 'local',
        name:'state',
        forceSelection: true,
        triggerAction: 'all',
        emptyText:'Select a state...',
        selectOnFocus:true
    });

你可能感兴趣的:(ext)