Frage

ich jQuery auto-complete-Plugin für eine einfache Suchformular verwenden. Ich habe Probleme für die Nutzung meine JSON-Objektdaten in ein Array konvertieren mit Auto-Vervollständigung.

Mein Code:

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

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

Meine JSON-Daten, die wie folgt aussehen zurückgegeben:

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

Aus irgendeinem Grunde sieht es aus wie das, was ich bin immer wieder von dieser getAutocompleteData Funktion eine leere Zeichenfolge ist, und ich weiß nicht, was falsch ist.

Bitte helfen Sie!

War es hilfreich?

Lösung

Es ist, weil $.getJSON asynchron ist. Sobald Sie die Anfrage, Ihre Funktion getAutocompleteData() weiter ausführt, Rückkehr nichts senden.

Sie sollten alles in der Callback-Funktion anbei erhalten Sie auf der getJSON Methode vorbei sind:

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

Andere Tipps

Versuchen Sie, die var ouput; Linie Wechsel var output = '';

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top