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://blog.csdn.net/oarsman/article/details/51082958