我在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
});
});
有人告诉我我错在哪里吗?
答案 0 :(得分:0)
问题的核心是ajax函数是异步的。它不会与代码的其余部分同时执行,而是在您的ajax请求(可能需要10-100毫秒才能完成)的响应可用时执行。
因此,您无法return
来自success
- 函数的值。相反,您必须将它们传递给response
函数。像这样:
success: function(data) {
var res=data.match('\\[[^\\]]*]');
response(["Choice1", "Choice2"]);
}