Pergunta

Estou usando o plugin de preenchimento automático da JQuery para um formulário de pesquisa simples. Estou tendo problemas para converter meus dados de objeto JSON em uma matriz para uso com preenchimento automático.

Meu código:

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

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

Meus dados JSON que são retornados se parecem:

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

Por algum motivo, parece o que estou recebendo disso getAutocompleteData A função é uma string vazia e não sei o que está errado.

Por favor ajude!

Foi útil?

Solução

É porque $.getJSON é assíncrono. Assim que você enviar o pedido, sua função getAutocompleteData() continua executando, retornando nada.

Você deve incluir tudo na função de retorno de chamada que está passando para o método getjson:

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

Outras dicas

Tente mudar o var ouput; linha para var output = '';

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top