自动填充不起作用

时间:2012-07-11 07:20:39

标签: javascript ajax jquery-ui autocomplete

我在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     
    });
});

有人告诉我我错在哪里吗?

1 个答案:

答案 0 :(得分:0)

问题的核心是ajax函数是异步的。它不会与代码的其余部分同时执行,而是在您的ajax请求(可能需要10-100毫秒才能完成)的响应可用时执行。

因此,您无法return来自success - 函数的值。相反,您必须将它们传递给response函数。像这样:

success: function(data) {
  var res=data.match('\\[[^\\]]*]');
  response(["Choice1", "Choice2"]);
}