jquery的autocomplete在firefox下不支持中文输入法的bug
Query.Autocomplete 是jquery的流行插件,能够很好的实现输入框的自动完成(autocomplete)、建议提示(input suggest)功能,支持ajax数据加载。
但唯一遗憾的是,在对中文输入法打开时,firefox3.0中是对中文拼音的自动匹配,而对输入后的中文无法及时触发匹配;
原因分析:
Autocomplete 插件对用户输入字符的触发自动匹配是通过”keydown”事件进行的(可分析jquery.autocomplete.js第 92行),在IE6中,当输入法打开时,输入的字符是不会触发”keydown”的,只有中文输入完毕才触发之,所以中文输入和latin文没有区别的; 但在firefox3.0下,无论输入法打开否,按键都会触发”keydown”事件,所以造成中文输入完毕,自动匹配的是刚才打出的部分中文拼音字母。 ------所以只有Firefox有问题。
解决方法:
网上查到的最多做法是修改 jquery.autocomplete.js第 92行,将”keydown”替换为”keyup”,但这个不是根本办法,虽然这样改后可在firefox中及时对输入的中文进行自动匹配,但将原插件中 回车、tab等重要的事件机制破坏了,比如这样改后,如果你的input是在一个form里的话,回车从原来的将选定项输入到input中变为了直接提交 form表单了,这并不是我们想要的。
我的解决方法如下:

}).bind("flushCache", function() {
cache.flush();
}).bind("setOptions", function() {
$.extend(options, arguments[1]);
// if we've updated the data, repopulate
if ( "data" in arguments[1] )
cache.populate();
}).bind("input", function() {
onChange(0,true);
}).bind("unautocomplete", function() {
select.unbind();
$input.unbind();
$(input.form).unbind(".autocomplete");
如果你在reult时间中绑定了事件,又希望复制过来的内容也能够触发你的事件,可以加上如下的代码,这样就能保证用户不单击选项也能触发你的result事件。
//

}).bind("input", function() {
onChange(0,true);
}).bind("unautocomplete", function() {
select.unbind();
$input.unbind();
$(input.form).unbind(".autocomplete");
}).bind("change", function() {
$input.search(
function (result){
$input.trigger("result", result && [result.data, result.value]);
}
);
});
转自:http://blog.sina.com.cn/s/blog_6ebc885a01013faj.html
jquery的autocomplete在firefox下不支持中文输入法的bug的更多相关文章
- 类似baidu搜索 修正jquery的autocomplete在firefox下不支持中文输入法的bug
解决方法:
- EASYUI 1.4版 combobox firefox 下不支持中文检索的问题
easyui 的combobox 在IE下面输入中文,可以自动实现筛选和检索的功能,但是在firefox下面不可以. 于是查了一些资料,发现原来是浏览器对于中文输入法的处理问题,对于chrome 和 ...
- EASYUI combobox firefox 下不支持中文检索
firefox 中文录入因为输入法的问题,无法出发检索的事件.网上的方法试过还是没有解决. 于是使用录入时新增一个模拟键shift,触发keydown事件,最终实现需要的效果. $("inp ...
- 小tip:FireFox下文本框/域百分比padding bug解决——张鑫旭
一.问题描述 我是流体布局控,经常会遇到文本框以及文本域宽度100%自适应显示的情况. 如下效果图: 在窄屏下,上面的文本框宽度也要跟着外部宽度变小. 难点对于文本框或者文本域,光标最好距离左侧边缘有 ...
- Linux下常用的中文输入法平台有IBus、fcitx和scim
Linux下常用的中文输入法平台有IBus.fcitx和scim.scim现在维护滞后,不推荐使用. IBus ("Intelligent Input Bus") 是一个 输入法框 ...
- DOS下无法调出中文输入法-Solved
From:http://www.cnblogs.com/killerlegend/p/3750542.html Author:KillerLegend Date:2014.5.24 DOS下无法打开中 ...
- 对 hiren bootcd 15.2 中的 XP 系统作了汉化, 同时支持中文输入法。提供下载
对 hiren bootcd 15.2 中的 XP 系统作了汉化, 同时支持中文输入法.提供下载 对该PE 中的 XP 系统作了汉化, 由于一个 中文字库 就要 10M 多:加之原系统过于精简,对中文 ...
- 3.QT5.8支持中文输入法(附带老版本的解决+不理想的情况解决)
安装过程:http://www.cnblogs.com/dotnetcrazy/p/6725945.html 用了QT发现,中文输入法不能输入...一开始以为是输入法问题,后来发现,其他地方都可以中文 ...
- 点滴记录——在Ubuntu 14.04中使SublimeText 3支持中文输入法
在Ubuntu 14.04中安装了SublimeText 3之后发现既然不支持输入中文,于是在网上搜罗一下,发现非常多人遇到了相同的问题,可是解决的方法大该就仅仅有一个.以下依据自身的安装及解决的方法 ...
随机推荐
- UVA 12169 Disgruntled Judge 扩展欧几里得
/** 题目:UVA 12169 Disgruntled Judge 链接:https://vjudge.net/problem/UVA-12169 题意:原题 思路: a,b范围都在10000以内. ...
- tomcat设置web根目录
- 第二百零一节,jQuery EasyUI,Accordion(分类)组件
jQuery EasyUI,Accordion(分类)组件 学习要点: 1.加载方式 2.容器属性 3.事件列表 4.方法列表 5.面板属性 本节课重点了解 EasyUI 中 Accordion(选项 ...
- Word常用操作笔记
总忘,在这记一下,以下以WPS为例,WORD大同小异,别看网上那些乱写的,就哥这个稳定好使: 1. 在指定页面及其后开始插入页码 2. 修改页码中的总页数 -> 选中总页数的域 -> SH ...
- MTK驱动探索:mtk6582添加tp驱动s3203
代码从mtk6589平台移植,ic为用户定制. 解决的问题有: 一.build err:主要原因是89和82平台函数和宏定义冲突,如: extern void mt_eint_unmask(unsig ...
- Rightscale & Amazon
原先一直以为Rightscale是Amazno旗下的一个产品,今天才知道是Amazon partner - -||,实在汗颜. Rightscale也是一个很强大的公司,提供跨云解决方案...(呃,原 ...
- OpenCV学习笔记一:OpenCV概览与配置编译
一,OpenCV OpenCV官方网站:http://opencv.org/ OpenCV目前最新代码库地址:https://github.com/itseez/opencv 二,简介: OpenC ...
- 关于webpack打包图片的路径问题
在webpack打包的时候,用css-loader的时候,在css文件里用的引用的背景的图片的时候,如果是url()...那么里面的路径不能用相对路径,得用绝对路径,而且必须是带http的,幸好,,, ...
- 使用mybatis向oracle数据库插入数据异常
遇到了使用mybatis向oracle数据库插入数据异常的问题, 具体的报错如下:org.springframework.jdbc.UncategorizedSQLException: ### Err ...
- 二、Nuxt初始化项目
一.快速生成新项目 为了方便大家快速使用,Nuxt提供了一个starter模板,可以直接下载模板的压缩包,或者利用vue-cli来安装 1.压缩包链接:https://github.com/nuxt- ...