Fuente de datos para el complemento de autocompletar jQuery
-
10-07-2019 - |
Pregunta
Estoy usando el complemento de autocompletar de jQuery para un formulario de búsqueda simple. Tengo problemas para convertir mis datos de objetos JSON en una matriz para usar con autocompletar.
Mi 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;
}
Mis datos JSON que se devuelven se ven así:
["Jimmy","John", "Etc",null]
Por alguna razón, parece que lo que estoy recuperando de esa función getAutocompleteData
es una cadena vacía y no sé qué está mal.
¡Por favor ayuda!
Solución
Es porque $ .getJSON
es asíncrono. Tan pronto como envíe la solicitud, su función getAutocompleteData ()
continúa ejecutándose, sin devolver nada.
Debería incluir todo en la función de devolución de llamada que está pasando al método getJSON:
var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
var output = "";
$.each(data, function(index, optionData) {
output += optionData + "|";
});
$('#OrderedBy').autocomplete(output);
});
Otros consejos
Intente cambiar la línea var output;
a var output = '';