[英]Autocomplete doesn't work
我在js中自動完成有問題。 下面的代碼對我來說很有效:
$(function(){
$( "#txtAuto" ).autocomplete({
source: ["Choice1","Choice2"],
minLength:2
});
});
但是,當我將其更改為下面的代碼進行測試時,它沒有給我選擇:
$(function(){
$( "#txtAuto" ).autocomplete({
source: function( request, response ){
$.ajax({
url: "test.ewd",
success: function(data){
var res=data.match('\\[[^\\]]*]');
return ["Choice1", "Choice2"];
}
});
},
minLength:2
});
});
有人告訴我我在哪里做錯了嗎?
問題的核心是ajax函數是異步的。 它不會與其余代碼同時執行,而是在對ajax請求的響應(可能需要10到100毫秒才能完成)可用時執行。
因此,您無法從success
函數return
值。 相反,您必須將它們傳遞給response
函數。 像這樣:
success: function(data) {
var res=data.match('\\[[^\\]]*]');
response(["Choice1", "Choice2"]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.