Necesito hacer lo siguiente usando un cuadro combinado.¿Cómo usar un combobox de autocompletar jQuery con datos AJAX JSON?
Select box
tiene una lista predeterminada de las ciudades que el usuario puede buscar.- Si un usuario escribe texto en el cuadro
input
, debo hacer una llamada ajax para obtener datos y mostrar las opciones al usuario. - Si los datos fue exagerado por la petición del usuario, esas ciudades deberían ser agregadas a las opciones de
Select box
Uso jQuery autocomplete soy capaz de obtener los datos JSON de usuario que introduce una cadena y mostrar los resultados. Sin embargo, no tengo ni idea de cómo integrar esto usando el combobox.
Combobox utiliza una matriz de datos estáticos para buscar y si entiendo esto correctamente, usa la expresión regular para hacer coincidir los valores. Sin embargo, ¿cómo lo interrumpo y uso la llamada ajax para recuperar datos del servidor y actualizar los resultados?
Autocompletar para cuadro de texto de entrada:
$("#searchDestination").autocomplete({
delay: 500,
source: function(request, response) {
$.ajax({
url: "/wah/destinationsJson.action",
dataType: "json",
data: {
term: request.term
},
type: "POST",
success: function(data){
if(data.cities.length == 0)
return response(["No matching cities found for " + request.term]);
response($.map(data.cities, function(item){
return{
label: item.name,
value: item.name
};
})
);
}
});
},
minLength: 2
});
});
¿cómo se ven los datos de origen de autocompletar? –
@ltiong_sh Mi autocompletar para el cuadro de texto de entrada simple funciona bien con JSON. (sin embargo, actualicé mi respuesta) – brainydexter
cuando dices que la lista captada debe anexarse a la lista predeterminada, ¿eso significa que los elementos predeterminados siempre serán visibles, o se filtrarán también ... en función de las entradas del usuario? –