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 });