jquery ui使用ajax数据源自动完成

时间:2012-10-17 12:02:29

标签: jquery jquery-ui-autocomplete

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

1 个答案:

答案 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函数是异步的,因此您无法将其放在其他位置。