代码之家  ›  专栏  ›  技术社区  ›  Jimmy

jQuery自动完成插件的数据源

  •  2
  • Jimmy  · 技术社区  · 16 年前

    我正在使用jQuery的自动完成插件来创建一个简单的搜索表单。我在将JSON对象数据转换为数组以供auto complete使用时遇到问题。

    我的代码:

    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 函数是一个空字符串,我不知道出了什么问题。

    2 回复  |  直到 16 年前
        1
  •  7
  •   Blazemonger    13 年前

    因为 $.getJSON getAutocompleteData() 继续执行,不返回任何内容。

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

    var output;
    $.getJSON('AJAX/GetOrderedByNames', function(data) {
        var output = "";
        $.each(data, function(index, optionData) {
            output += optionData + "|";
        });
        $('#OrderedBy').autocomplete(output);
    });
    
        2
  •  0
  •   Tim Cooper    15 年前

    试着换个颜色 var ouput; var output = '';