1、调整Combobox支持模糊查询,并支持从任意位置开始匹配
解决方案:将字符串的indexof匹配由原来的判定为头部匹配,改为包含匹配
return row[opts.textField].toLowerCase().indexOf(q.toLowerCase())==0;
修改为 return row[opts.textField].toLowerCase().indexOf(q.toLowerCase())>-1;
我用的是eaysUI 1.4版本,修改代码在 jquery.easyui.min.js 中大概 12140 行左右。
2、调整Combobox,以支持搜索时中文输入结束不自动触发查询
解决方案:将触发查询执行的引起事件由keydown改成 keyup
$.fn.combo.defaults=$.extend({},$.fn.textbox.defaults,{inputEvents:{click:_8a2,keydown:_8a6,paste:_8a6,drop:_8a6},panelWidth:null,panelHeight:200,panelMinWidth:null,panelMaxWidth:null,panelMinHeight:null,panelMaxHeight:null,panelAlign:"left",multiple:false,selectOnNavigation:true,separator:",",hasDownArrow:true,delay:200,keyHandler:{up:function(e){
},down:function(e){
},left:function(e){
},right:function(e){
},enter:function(e){
},query:function(q,e){
}},onShowPanel:function(){
},onHidePanel:function(){
},onChange:function(_8d6,_8d7){
}});
修改为
$.fn.combo.defaults=$.extend({},$.fn.textbox.defaults,{inputEvents:{click:_8a2,keyup:_8a6,paste:_8a6,drop:_8a6},panelWidth:null,panelHeight:200,panelMinWidth:null,panelMaxWidth:null,panelMinHeight:null,panelMaxHeight:null,panelAlign:"left",multiple:false,selectOnNavigation:true,separator:",",hasDownArrow:true,delay:200,keyHandler:{up:function(e){
},down:function(e){
},left:function(e){
},right:function(e){
},enter:function(e){
},query:function(q,e){
}},onShowPanel:function(){
},onHidePanel:function(){
},onChange:function(_8d6,_8d7){
}});
我用的是eaysUI 1.4版本,修改代码在 jquery.easyui.min.js 中大概 11723 行左右。