-4

这是我的代码:

$.ajax({
    url: '/Search.ashx',
    data: {
        q: "KAR",
        t: 'C'
    },
    dataType: 'json'
}).done(function (source) {
    countriesArray = $.map(source, function (value, key) {
        return {
            value: value,
            data: key
        };
    }),
    countries = $.map(source, function (value) {
        return value;
    });
    $('.ACCity').autocomplete({
        lookup: countriesArray,
        lookupFilter: function (suggestion, originalQuery, queryLowerCase) {
            var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase), 'gi');
            return re.test(suggestion.value);
        },
        onSelect: function (suggestion) {
            alert(suggestion.value);
        }
    });
});

此代码仅运行一次并在当前数组中搜索。但是,我希望它每次按键都能获取数组。

源代码

ps:我知道我写 q:"KAR"的。如果我解决这个问题,我会改变$('.ACCity').val()

谢谢。

4

1 回答 1

2

您需要将 ajax 调用移动到自动完成的源属性中:

$('.ACCity').autocomplete({
    ...

    source: function(request, response) {
        $.ajax({
            url: '/Search.ashx',
            data: {
                 q: "KAR",
                 t: 'C'
        },
        dataType: 'json'
        }).done(function (source) {
            countriesArray = $.map(source, function (value, key) {
                return {
                    value: value,
                    data: key
                };
        })
    },
    ...
});
于 2013-07-01T11:12:33.903 回答