`
jialonely
  • 浏览: 19329 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

jquery easyui combobox 非选项值校验

阅读更多

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');
	}
});

 

当焦点离开输入框时,遍历所有的可选项,看看是否有同输入内同一致的选项,没有则清空选择。

 

 

分享到:
评论
2 楼 xinzhuu 2014-07-10  
应该在onHidePanel的时候判断才是最准确的:
$('#MajorId').combobox({
                onHidePanel: function () {
                    debugger;
                    var val = $(this).combobox('getValue'),
                        data = $(this).combobox('getData');

                    if (!val || !data) return;

                    var i = 0, len = data.length;

                    for (; i < len; i++) {
                        if (val == data[i]['MajorID']) return;
                    }

                    $(this).combobox('clear');
                }
            });
1 楼 huangst 2014-03-03  
$('#cb').combobox('textbox').bind('blur',function(){ 
在1.3.5下报错
我改用


$('#su_id').combobox().next('span').find('input').bind('blur',function(){

相关推荐

Global site tag (gtag.js) - Google Analytics