0
我在我的网站上使用jQuery UI自动完成功能。我的问题:jQuery自动完成:首次输入后不显示下拉菜单
在Chrome和Firefox:当用户加载网站后迅速进入一个四个字母项,停止输入,下拉不会立即显示。只有输入另一个字母后,才会显示下拉菜单。从现在开始,下拉菜单总是显示,当用户改变搜索词时,那么就没有问题了。当用户重新加载页面并快速输入新词并停止时,再次下拉不显示。当重新加载页面后,用户输入这个词非常慢,下拉菜单显示,然后再次没有问题。我如何实现在“第一次输入”后显示下拉菜单?
在Internet Explorer中,下拉菜单从不显示。
这里说到我的代码:
$('#my-search-input').on('keyup', function() {
var characterLength = $(this).val().length;
if ((characterLength > 2) || (characterLength == 0)) {
typewatch(function() {
$('#my-search-input').autocomplete({
source: function (request, response) {
$.post(Routing.generate('my_path'), {
term: request.term
}, function (data) {
response(data)
}, 'json');
},
close: function (event, ui) {
loadResults();
}
});
loadResults();
}, 500);
}
});
var typewatch = (function() {
var timer = 0;
return function (callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
UPDATE:的jsfiddle
又来了一个JS拨弄它具有类似的代码,其中包含的问题: http://jsfiddle.net/cd1kd08s/
当你键入“阿尔巴尼亚”以找到“阿尔巴尼亚”,下拉不会立即显示。当您继续输入字母“i”(导致“Albani”)时,下拉菜单显示。