转自:http://liss.javaeye.com/blog/575771
Ext.form.ComboBox提交始终获得displayField的值,以前没遇到过,直到我做了一个ComboBox组合Tree时,才出现这个问题,不管我怎么设置,以及修改代码,就是一直提交的是显示的内容,而不是隐藏的那个值.
后来,在使用普通的ComboBox时,也出现这个问题,于是认真了一把,终于找到了问题的解决方法,只要在ComboBox对象里设置hiddenName属性(我把hiddenName值设成name一样的值)就可以了,嘿嘿,真是很变态.
示例代码:
- var combo = new Ext.form.ComboBox({
- //name:"test", //据说可以不用这属性
- hiddenName:"test",
- fieldLabel: "测试",
- store: new Ext.data.SimpleStore({ // 填充的数据
- fields : [ 'value', 'text'],
- data : [[1, '正常'], [0, '禁用']]
- }),
- valueField:"value",
- displayField:"text",
- readOnly:true,
- mode: "local",
- triggerAction:"all",
- emptyText:"请选择类型...",
- allowBlank:false,
- editable :true
- });
估计大部分人和我一样提交表单后,后台始终得不到ComboBox的值,原来hiddenName才是真是的提交表单名称,开始一直以为是name。怎么网络上那么多不负责任的人说是name呢?害我弄了很久,行库看到http://jokul-sycs.spaces.live.com/blog/cns!FBACFBA11EA0344A!122.entry的提示。谢谢啊。
var combo = new Ext.form.ComboBox({
//name:"fkid",
hiddenName:"fkid",
fieldLabel: "文件分类",
store:data,
valueField:"fkid",
displayField:"mtext",
readOnly:true,
mode: "local",
triggerAction:"all",
emptyText:"请选择类型...",
allowBlank:false,
editable :true
});
再次高喊:ext你强大了!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jzdzhiyun/archive/2008/10/04/3016147.aspx