easyui 中的 combobox 可以输入值,但是并没有开放对输入值进行校验接口。比如,输入“12”,但是data中并没有text为12的选项,此时需求是插件清空用户输入。
查看官网document,并没有相应的属性和方法。只能自己加校验。
下边提供两个思路
1.重写validate 校验规则。由于combobox有validatebox 的属性,可以修改校验规则来校验。
2.给combobox的输入框加入事件监听。
这里介绍第二种。查看文档,combobox提供了“textbox”方法,返回输入框对象,有这个方法就简单了,给他绑定事件即可。
$('#cb').combobox('textbox').bind('blur',function(){ // 获得输入值 var inputV = $('#cb').combobox('getText'); var datas = $('#cb').combobox('getData'); var size = datas.length; if(inputV==""||size==0){ return; }else{ for(var i =0;i<size;i++){ if(inputV==datas[i].text){ return; } } $('#cb').combobox('clear'); } });
当焦点离开输入框时,遍历所有的可选项,看看是否有同输入内同一致的选项,没有则清空选择。