jQuery自动完成插件的数据源

Jim*_*mmy 2 jquery json autocomplete jquery-autocomplete

我正在使用jQuery的自动完成插件来获得简单的搜索表单.我无法将我的JSON对象数据转换为数组以供自动完成使用.

我的代码:

var listOfOrderedByNames = getAutocompleteData();
$('#OrderedBy').autocomplete(listOfOrderedByNames);

function getAutocompleteData() {
    var output;
    $.getJSON('AJAX/GetOrderedByNames', function(data) {
        $.each(data, function(index, optionData) {
            output += optionData + "|";
        });
    });
    return output;
}
Run Code Online (Sandbox Code Playgroud)

我返回的JSON数据如下所示:

    ["Jimmy","John", "Etc",null]
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它看起来像我从该getAutocompleteData函数返回的是一个空字符串,我不知道有什么问题.

请帮忙!

Seb*_*Seb 7

这是因为$.getJSON是异步的.一旦发送请求,您的功能就会getAutocompleteData()继续执行,不返回任何内容.

您应该将所有内容都包含在您传递给getJSON方法的回调函数中:

var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
    var output = "";
    $.each(data, function(index, optionData) {
        output += optionData + "|";
    });
    $('#OrderedBy').autocomplete(output);
});
Run Code Online (Sandbox Code Playgroud)