2

我正在尝试将 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 返回错误的东西吗?所有建议表示赞赏。

4

1 回答 1

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函数是异步的,因此您不能将其放在其他地方。

于 2012-10-18T15:43:59.187 回答