关于Ext combo key 验证问题 谢谢大家了

//问题说明:以下代码可以正常完成工作,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
不让自己填,只让选。