我正在尝试将jquery ui自动完成功能与ajax数据源一起使用,我只是看不出我的代码有什么问题。
这是我的代码
$(document).ready(function () {
var data = new Portalen.LitteraNumberData();
$("#LitteraNumber").autocomplete({
minLength: 1,
source : function (request, response) {
var customerId = $("#CustomerId").val();
return response(data.loadLitteraNumbers(customerId));
}
});
});
在js文件中我有这个:
Portalen.LitteraNumberData = function () { };
Portalen.LitteraNumberData.prototype = function() {
var loadLitteraNumbers = function(customerId) {
$.get("/Orders/GetLitteraNumbers", { customerId: customerId }, function (response) {
return response;
});
};
return {
loadLitteraNumbers: loadLitteraNumbers
};
}();
ajax调用正在运行,我得到正确的响应,但自动完成功能不会发生。 LitteraNumberData返回错误的东西吗?所有建议都表示赞赏。
答案 0 :(得分:3)
试试这个:
$(document).ready(function () {
var data = new Portalen.LitteraNumberData();
$("#LitteraNumber").autocomplete({
minLength: 1,
source : function (request, response) {
$.get("/Orders/GetLitteraNumbers", { customerId: request.term }, function (data) {
response(data);
});
}
});
});
我已将$("#CustomerId").val()
替换为request.term
。而且,该函数不需要返回响应。
$.get
函数是异步的,因此您无法将其放在其他位置。