处理jqueryeasy ui combobox中文模糊搜索及数据多处理

##小计一下,备查:

combobox默认初始化,数据多时就会出现卡顿的现象(1800多条的下拉确实有点多)。搜索中文不及时,下拉面板始终有延迟。

三种解决思路:

1、网上有一种思路:就是修改easyui 原文件combobox部分(这个与版本还有关系  反正我是pass)https://blog.csdn.net/d1208/article/details/49001693 (要改的可以看这个);

2、自己重写个插件...

3、通过改变控件处理事件:加入input事件(我采用的):代码如下:

$.ajax({
    		url:basePath + "gzgl/manage/json/ylbcbmc",
    		type:"post",
    		success:function(d){
    			$(".search input[name='cbmcList']").data("list",d);
    			var dd = [];
    			for(var i in d){
    				if(i <= 30){
    					dd.push(d[i]);
    				}
    			}
    	    	$(".search input[name='cbmc']").combobox({
    	    		valueField:"id",
    	    		width:"200px",
    	    		data:dd,
    	    		onBeforeLoad:function(){
    	    			var $this = $(this);
    	    			$this.parent().children().find(".textbox-text").bind("input",function(){
    	    				var v = $(this).val();
    	    				$this.parent().children().find(".textbox-value").val(v);
    	    				var lists = $(".search input[name='cbmcList']").data("list");
        	    			var m = 0;
        	    			var dd = [];
        	    			for(var i in lists){
        	    				var re = new RegExp(v);
        	    				if(re.test(lists[i].id) && m <= 30){
        	    					dd.push(lists[i]);
        	    					m++;
        	    				}
        	    			}
        	    			$this.combobox("loadData",dd);
        	    			var tb = $this.combobox("panel");
        	    			tb.find("div").addClass("show");
    	    			});
    	    		}
    	    		//url: basePath + "gzgl/manage/json/ylbcbmc"
    	    	});
    		}
    	});

最后处理目标:下拉条数减少,只支持30条;支持中文实时匹配了。

猜你喜欢

转载自my.oschina.net/u/1187799/blog/1834151