原文:http://blog.sina.com.cn/s/blog_6ebc885a01013faj.html
jQuery.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]);
}
);
});
分享到:
相关推荐
《修复jQuery Autocomplete在Firefox中不支持中文的BUG详解》 在前端开发中,jQuery Autocomplete是一款非常实用的插件,它能为输入框提供自动补全功能,极大地提升了用户体验。然而,在某些情况下,尤其是在Fire...
jquery autocomplete.js 是一款优秀的开源JS,支持自动完成,不过如果是中文失效。原因是由于中文编码不一致引起的,修改源文件中AJAX请求中的编码,加上escape编码后,在后台用Server.URLDecode解码后,则中文也...
《jQuery Autocomplete 全面解析》 jQuery Autocomplete 是一个非常实用的插件,它为网页表单输入框提供了自动补全功能,极大地提升了用户体验。这个压缩包“jquery autocomplete下载.rar”包含了实现这一功能所需...
但在 Firefox 3.0 中,即使输入法开启,每个按键按下都会触发“keydown”事件,导致匹配的是用户输入的拼音而不是完整的汉字。 为了解决这个问题,一些开发者提出了修改插件源码的方法,即将“keydown”事件替换为...
综上所述,这个项目的核心在于使用Java后端处理搜索请求,通过jQuery Autocomplete插件在前端展示搜索建议,并对其进行修正以支持键盘导航。通过这样的实现,我们可以为用户提供一个高效且友好的搜索体验,类似于...
jQuery Autocomplete 是一个非常流行的 jQuery 插件,它为输入框提供了自动补全的功能,极大地提升了用户在网站上的交互体验。这个插件源自于 jQuery UI 库,但也可以单独使用。在本文中,我们将深入探讨 jQuery ...
结合Ajax,分页可以实现动态加载,用户可以在不刷新页面的情况下浏览更多的数据。 具体到这个例子,开发者可能对原始的jQuery autocomplete插件源码进行了修改,以支持分页功能。这可能涉及到以下几个关键点: 1. ...
jQuery Autocomplete是一款非常实用的JavaScript插件,它允许用户在输入框中输入文字时,根据已有的数据集动态提供补全建议。这个功能在许多Web应用中被广泛使用,如搜索框、表单输入等。在给定的“jquery ...
总之,jQuery AutoComplete 是一个强大且灵活的自动补全解决方案,它能轻松地与现有的 jQuery 项目集成,提供丰富的配置选项和扩展能力,满足各种场景下的需求。通过深入了解和实践,你可以将其运用到实际项目中,...
标题中的“jQuery Autocomplete DWR结合 修改Data”指的是在Web开发中使用jQuery UI的Autocomplete组件与Direct Web Remoting (DWR)技术相结合,并对数据进行定制化处理的方法。jQuery Autocomplete是一个流行的UI...
在Firefox浏览器中使用jQuery AutoComplete,可能会遇到一些特定的问题,因为不同的浏览器对某些JavaScript特性可能有不同的实现或支持。这篇博客(链接已提供)可能详细讨论了在Firefox中实现jQuery AutoComplete时...
**jQuery Autocomplete.js 插件使用详解** jQuery Autocomplete.js 是一个非常实用的插件,它为HTML输入框提供了自动补全功能,极大地提升了用户体验。这个插件基于jQuery库,结合Ajax技术,能够实时从服务器获取...
jquery-autocomplete搜索框自动完成的中文文档,上手快,轻便,功能强大
在IT行业中,jQuery Autocomplete是一个常用的插件,用于实现类似于搜索引擎的自动补全功能。它为用户提供了方便快捷的输入体验,尤其适用于大型数据集的筛选。本项目以"jQuery Autocomplete 仿百度搜索 只能搜索...
1,本示例是基于微软拼音类库的...4,由于jquery匹配时的match项和result项来自不同的对象,所以autoFill属性只好置为false,本人对jquery.autocomplete不甚了解,期待高人能让autoFill显示得漂亮点(关键是多音字)。
`jQuery AutoComplete` 是基于 jQuery 和 jQuery UI 的插件,它通过监听用户在输入框中的输入行为,实时发送请求到服务器,获取匹配的数据,并将这些数据以下拉列表的形式展示出来,供用户选择。这个过程涉及到了...
2. **数据处理**:`jquery.autocomplete.js`支持多种数据源,包括静态数组、AJAX请求、远程API等。数据源的配置灵活多样,可以根据实际需求选择合适的加载方式。例如,你可以预定义一组关键词列表作为数据源,或者...
jQuery Autocomplete 是通过监听用户在输入框中的输入事件,根据输入内容实时向服务器发送请求,获取匹配的数据,然后将这些数据以建议的形式展示在输入框下方。这一过程的关键在于实时更新、异步请求和数据格式化。...
在Firefox浏览器中,jQuery.autocomplete插件存在一个bug,即在中文输入状态下,插件不能正确地根据用户的输入及时触发匹配建议。这种问题在IE6.0浏览器中并不存在。问题的原因在于Firefox对于键盘事件的处理方式,...
**jQuery autoComplete 知识点详解** `jQuery autoComplete` 是一个基于 jQuery 库的插件,它为网页表单输入框提供了自动完成的功能。这个插件能够帮助用户在输入时快速匹配并显示预先设定的数据集,通常用于提升...