2

簡単な検索フォームに 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関数から返されたものが空の文字列のように見え、何が問題なのかわかりません。

助けてください!

4

2 に答える 2

7

$.getJSON非同期だからです。リクエストを送信するとすぐに、関数getAutocompleteData()は実行を継続し、何も返しません。

getJSONメソッドに渡すコールバック関数にすべてを含める必要があります。

var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
    var output = "";
    $.each(data, function(index, optionData) {
        output += optionData + "|";
    });
    $('#OrderedBy').autocomplete(output);
});
于 2009-10-29T15:55:46.847 に答える
0

var ouput;行をに変更してみてくださいvar output = '';

于 2009-10-29T15:56:58.320 に答える