Javascript 自动完成不';行不通
我对js中的自动完成有一个问题。在这里,以下代码对我很有效:Javascript 自动完成不';行不通,javascript,ajax,jquery-ui,autocomplete,Javascript,Ajax,Jquery Ui,Autocomplete,我对js中的自动完成有一个问题。在这里,以下代码对我很有效: $(function(){ $( "#txtAuto" ).autocomplete({ source: ["Choice1","Choice2"], minLength:2 }); }); 但当我将其更改为下面的代码进行测试时,它不会给我选择: $(function(){ $( "#txtAuto" ).autocomplete({ source:
$(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
-函数中的值。相反,您必须将它们传递给响应
函数。像这样:
success: function(data) {
var res=data.match('\\[[^\\]]*]');
response(["Choice1", "Choice2"]);
}
没问题。我的答案旁边有一个按钮,你可以用它来“接受”答案。它将向其他人表明这是有效的解决办法。