//问题说明:以下代码可以正常完成工作,combo,没有设置disabled:true, //对combo也做了非空验证,只要选择了下拉值,就可以根据,combo.getRawValue()方法来得到显示的值,combo.getValue()得到key的值 //问题在于:如果用户没有选择下拉的值,直接输入了一个值,列如:'TEST'哪么, //key字段值就会变成displayField的字段值, //不管是获取combo.getRawValue(),combo.getValue() 都是TEST, //但在数据库要求是key值进行保存,要怎样才能判断key valueField是不是为空.... //而我要传到后台的是combo.getValue()的key值, //个人思路:1.如果可以验证key值那嘛就提示用户要选择才可以提交,,但不知道怎能验证key ///////////2.重新在根据显示值查询一次,显然是浪费时间,,,,,谢谢大家了 var store = new Ext.data.Store({ proxy:new Ext.data.HttpProxy({url:'../JSON/eamsDepotSvr.getEamsDepot'}),//请求Seam注解方法 baseParams:{ label:''//查询所有数据,所以设参数为空 }, reader:new Ext.data.JsonReader( { root: 'results', totalProperty:'totalProperty' }), ['depotName','id'] }); var combo = new Ext.form.ComboBox({ id:'test', name:'test', valueField:'id',//key字段 displayField:'depotName',//显示字段 store:store, triggerAction:'all', mode:'remote', fieldLabel:'TEST' }) //回车事件 combo.no('soecuakkey',function(){ var str = combo.getRawValue();//获取一个从combo输入的值.根据些值在数据库模糊查询 store.baseParams = { label: str } store.load({params:{start:0,limit:5}}) //加载数据并保存分页 })
加上
forceSelection : true
试试呢
直接在combo定义的时候,配置项中加入
editable : false
不让自己填,只让选。