您的位置:首页 > 产品设计 > UI/UE

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

2016-04-07 09:51 423 查看
最近再搞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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: