我正在尝试使用下面说明的方法实现jQuery自动完成(即单独的源函数和数据的中间变量)。现在我正在尝试将数据传递给autoComplete函数的源部分。
下面的代码有一个致命的问题,第一个关键笔划返回一个未定义的returnData
变量。任何人都可以解释发生了什么吗?
var returnData;
function sourceFn() {
return $.ajax({
url: //REST URL,
dataType: "jsonp",
async: false,
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function (data) {
returnData = data;
},
})
}
}
$("input#search-input").bind("autocompleteselect", jQuery.proxy(function (event, ui) {}, this)).autocomplete({
appendTo: "#yt-result-list",
source: function (request, response) {
sourceFn(request, response).done(alert("returnData: " + JSON.stringify(returnData)));
}
}).data("autocomplete")._renderItem = jQuery.proxy(function (ul, item) {
alert(item);
}, this)
});
});
});
答案 0 :(得分:0)
在初始化自动完成时尝试指定minLength: 0
,检查returnData的值以查看是否从服务器返回json(使用firebug)。
看起来您只是从一个字母的ajax调用中获取,自动完成功能正在触发sourceFn()
。