EASYUI 1.4版 combobox firefox 下不支持中文检索的问题

来源:互联网 发布:mac pro关闭打开程序 编辑:程序博客网 时间:2024/06/07 00:08

最近再搞easyui, 突然间发现一个奇怪的问题,easyui 的combobox 在IE下面输入中文,可以自动实现筛选和检索的功能,但是在firefox下面不可以。 于是查了一些资料,发现原来是浏览器对于中文输入法的处理问题,对于chrome 和 IE 他们会响应输入法最后输入中文时的keydown事件,也就是说如果你输入"调" 这个字,如果用的拼音输入法,你按下 diao 四个字符的时候,IE不会处理keydown事件,只有当"调"这个字进入到输入框中的时候,才会触发keydown 从而触发combobox的检索。 而Firefox 会响应每一个字符的keydown事件,也就是按下 d i  a o 四个键的时候各触发一次keydown事件,而选择中文字符的时刻,却只触发keyup事件,而不触发keydown事件。 而combobox的过滤事件恰恰只绑定了keydown  所以导致了在firefox中中文输入无法检索的问题。


解决方法如下: 在easyui 1.4 版本的jquery.easyui.min.js 中搜索如下代码:

$.fn.combo.defaults=$.extend({},$.fn.textbox.defaults,{inputEvents:{click:_952,keydown:_956,paste:_956,drop:_956},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(_983,_984){
}});
})(jQuery);

将其中的keydown 改为keyup  修改后为keyup:_956  即可解决问题。

如果不适用mini版的话,可以修改plugin  下面的jquery.combo.js  修改的部分和上面一致。


参考连接:http://www.oschina.net/question/237688_69510?sort=time&p=1

1 0
原创粉丝点击