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」)時,下拉菜單顯示。