我有ajax代码,它从Api返回Json,并且我正在寻找一种方法,我如何将这些数据传递给jquery自动完成。 这是mo代码:
$("#autocomplete").autocomplete({
minLenght: 2,
source: function(request,response) {
$.ajax({
url: "http://www.myadres/search/"+$("#autocomplete").val(),
crossDomain: true,
type: "POST",
dataType: "json",
data: {
"from" : "0",
"take" : "10"
},
beforeSend: function() {
//alert ('working...');
},
success: function( response) {
for (i = 0; i < response.Results.length; i++) {
// Console logs this data as desired, every time when i type something, console logging works good
console.log(response.Results[i].Name);
};
},
error: function( ) {
alert( "Error occured!" );
},
complete: function( xhr, status ) {
}
})
},
});
我只是不知道如何将数据从成功回调传递到jquery自动完成。谢谢你的任何建议。
答案 0 :(得分:0)
response
是一个期望一个字符串数组的回调函数。您还为ajax声明了response
值,因此您无法访问response
函数。您必须为success
参数设置另一个名称,例如ajaxResponse
。创建数组并在response
ajax处理程序中调用success
回调:
success: function(ajaxResponse) {
var values = [];
for (i = 0; i < ajaxResponse.Results.length; i++) {
values.push(ajaxResponse.Results[i].Name);
};
response(values);
}