答案 0 :(得分:3)
为了防止这样的事件你应该稍微修改jquery ui(这是IE的真正错误和部分jquery)。问题出在下一个功能中。 IE上升事件"输入"另一个人没有上升的地方。 在修改此函数之前有下一个视图:
input:function(e) {
if (r) {
r =! 1, e.preventDefault();
return;
}
this._searchTimeout(e)
}
<小时/> 您应该将其修改为下一个
input:function(e) {
if (r || typeof(r) == "undefined") {
r =! 1, e.preventDefault();
return;
}
this._searchTimeout(e)
}
答案 1 :(得分:3)
也面临这个问题,但初始化时有任何输入值。通过添加超时解决。
$(function () {
setTimeout(function(){
$("selector").autocomplete({
// autocomplete options
}),
1000);
});
答案 2 :(得分:1)
我最近遇到了这个问题,输入值包含西里尔字母。
我在不破解jQuery UI自动完成小部件代码的情况下实现了以下解决方法。与以前的解决方案相比,它可以在本地环境中实现。因此,当您在表单元素中初始化自动完成时,它可能很有用,例如你自己的固定jQuery插件。
var flagAutoCompleteInitDone;
// we assume that user will not start fill-in the form immediately
setTimeout(function(){flagAutoCompleteInitDone =true;}, 1000);
$('selector')
.each(function(){ // IE11 hack
// first we handle 'input' event and prevent its further propagation
// until our variable is initialized with setTimeout() handler call
this.addEventListener('input',
function(ev){
if( typeof flagAutoCompleteInitDone === 'undefined'){
ev.stopImmediatePropagation();
}
}, false);
}) // /IE11 hack
.autocomplete({
/* your autocomplete options */
});
在jQueryUI ver上测试过。 1.11.4和jQuery 1.6.1 +