【问题标题】:Data source for jQuery auto-complete pluginjQuery自动完成插件的数据源
【发布时间】:2010-12-11 07:25:27
【问题描述】:

我正在使用 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;
}

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

    ["Jimmy","John", "Etc",null]

由于某种原因,我从 getAutocompleteData 函数返回的内容似乎是一个空字符串,我不知道出了什么问题。

请帮忙!

【问题讨论】:

    标签: jquery json autocomplete jquery-autocomplete


    【解决方案1】:

    这是因为$.getJSON 是异步的。只要您发送请求,您的函数getAutocompleteData() 就会继续执行,不返回任何内容。

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

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

    【讨论】:

      【解决方案2】:

      尝试将var ouput; 行更改为var output = '';

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-13
        • 2011-06-06
        • 1970-01-01
        • 2011-09-21
        • 2012-05-18
        • 1970-01-01
        • 2012-01-29
        • 1970-01-01
        相关资源
        最近更新 更多