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