懒码农。。。。。。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

转自:http://liss.javaeye.com/blog/575771

 

Ext.form.ComboBox提交始终获得displayField的值,以前没遇到过,直到我做了一个ComboBox组合Tree时,才出现这个问题,不管我怎么设置,以及修改代码,就是一直提交的是显示的内容,而不是隐藏的那个值.

后来,在使用普通的ComboBox时,也出现这个问题,于是认真了一把,终于找到了问题的解决方法,只要在ComboBox对象里设置hiddenName属性(我把hiddenName值设成name一样的值)就可以了,嘿嘿,真是很变态.

示例代码:

Js代码  收藏代码
  1. var combo = new Ext.form.ComboBox({  
  2.           //name:"test", //据说可以不用这属性  
  3.            hiddenName:"test",  
  4.            fieldLabel: "测试",  
  5.            store: new Ext.data.SimpleStore({ // 填充的数据  
  6.                 fields : [ 'value',  'text'],  
  7.                 data   : [[1, '正常'], [0, '禁用']]  
  8.             }),  
  9.            valueField:"value",  
  10.            displayField:"text",  
  11.            readOnly:true,  
  12.            mode: "local",  
  13.            triggerAction:"all",  
  14.            emptyText:"请选择类型...",  
  15.            allowBlank:false,  
  16.            editable :true  
  17. });  

  

 

估计大部分人和我一样提交表单后,后台始终得不到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 

posted on 2011-03-31 11:56  阿彬  阅读(3840)  评论(0编辑  收藏  举报