我正在努力从远程数据源获取自动完成功能。返回JSON但它不会填充自动完成框。
$( "#patientName").autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://localhost:8080/cs/accountTypeAhead",
dataType: "json",
type: 'POST',
data: { "patientName": $("#patientName").val(),
"requestID": (new Date()).getTime()},
success: function( data ) {
var searchInfo = new Array();
for(var key in data)
{
if(typeof data[key] === "object") {
for(var i = 0; i < data[key].length; i++)
{
searchInfo.push(data[key]);
}//end for loop
}//end if
else if(key == "requestID")
{
if (data.requestID < $("#requestID").val() )
{ return false;}
else
{
$("#requestID").val(data.requestID);
}
}//end if/else
}//end for loop
return searchInfo;
}
});
},
minLength: 1,
});
我的控制台输出是我所期待的。我认为返回数组会有一定的效果。
答案 0 :(得分:1)
尝试更改
return searchInfo;
通过
response(searchInfo);
答案 1 :(得分:0)
这是我使用远程JSON自动完成的“成功”处理程序的工作版本。
success: function (data) {
response($.map(data, function (item){
return { label: item.FirstName, value: item.FirstName, id:item.MemberId }
}))
}
希望这有帮助。
另外,看看这个演示。 http://jqueryui.com/demos/autocomplete/remote-jsonp.html
答案 2 :(得分:0)
感谢您提供解决方案的帮助
success: function (data) {
response($.map(data.results, function (item){
return { label: item, value: item };
}));
}