我使用的是最新版本的JqueryUI自动完成功能(1.8.23)。 我正在使用autoFocus:true属性,这给了我一个大问题。
当我开始以稍微快的速度在输入框中输入文字时,autoFocus:true会导致文本被以前匹配的值替换。
例如:当我输入“foot”时,这会向服务器发出请求,并且自动完成下拉菜单中的第一个选项变为“foot”,而我会很快继续输入“football”。当我输入它时,这将取代字母球。
有人面对这个并找到了解决方案吗?
更新
这是jquery ui网站上提出的错误。虽然它已经被修复关闭,但它没有最新的稳定版本可供下载。 http://bugs.jqueryui.com/ticket/7555
如果有人找到了此解决方案的解决方法,那么如果您可以分享它就会很棒。
答案 0 :(得分:1)
虽然该错误已被JQueryUI团队“修复”,但该修复程序仅在1.9.0版本中可用。所以在那之前,这是解决问题的方法。模糊事件是导致此问题的原因。
将以下代码添加到您网页的javascript:
$('.ui-autocomplete-input').each(function (idx, elem) {
var autocomplete = $(elem).data('autocomplete');
if ('undefined' !== typeof autocomplete) {
var blur = autocomplete.menu.options.blur;
autocomplete.menu.options.blur = function (evt, ui) {
if (autocomplete.pending === 0) {
blur.apply(this, arguments);
}
};
}
});
信用转到these folks