我有這個自動完成輸入:jQuery的自動完成不顯示下拉
<input type="text" id="find_user" class="autocomplete_field" />
腳本:
$("#find_user").autocomplete({
source: "/get_ajax_data.php?type=find_user",
minLength: 3,
timeout : 1000,
select: function(event, ui) {
window.location.href = "/user_admin.php?action=edit&id=" + ui.item.id
}
});
當 「test」 的用戶類型,我得到了如下結果返回:
[{"id":"26","uname":"test 1","firstname":"Test","lastname":"1","email":"[email protected]", ............
選擇下拉菜單顯示正常
我添加了一個選項,以顯示所有,把輸入 「*」
$(".autocomplete_field").keyup(function(){
if ($(this).val() == '*') {
$(this).autocomplete('search', "___");
}
})
結果是:
[{"id":"1","uname":"admin","firstname":"Ad","lastname":"Min","email":"","lang_iso_code":null,.....................
,但沒有選擇下拉列表所示。
它在我的本地機器上工作,所以我認爲它可能是超時問題。這就是爲什麼我添加了超時選項(不確定是否正確)。沒有幫助。 我認爲它可能是其他用戶的數據('測試'用戶(只有兩個其他用戶)...所以我通過填寫他們的名字(admin和cron)單獨搜索這兩個用戶和數據返回罰款與選擇框顯示。
只要我嘗試查看所有在現場,它不顯示選擇下拉列表。 雖然只有5個用戶(admin + cron +三個測試帳號) 約需440ms返回2.2kb的數據。
我使用JQ UI 1.11
編輯:
我只是做了一個測試用「___」作爲搜索文本,所有的用戶都在下拉菜單中顯示。我假設的代碼:
$(this).autocomplete('search', "___");
沒有被設置同樣的事情,當我搜索文本「___」
在conlsole我可以看到由Ajax調用,術語「___」,並結果如上。就好像它不想在我使用'*'時顯示菜單列表,並且只在實時服務器上顯示。本地工作正常。
我建議你看看這篇博客的jQuery UI自動完成的例子 - http://salman-w.blogspot.in/2013/12/jquery-ui-autocomplete-examples.html – Subhash 2014-11-25 06:57:24