簡體   English   中英

自動完成功能不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM