jQuery UI autocompletar problema de IE
Frecuentes
Visto 725 equipos
1
primero mi codigo
$(function() {
var suggest;
$("#guestname").keyup(function() {
$.ajax({
async: true,
url: '../include/searchGuest.php',
dataType: 'json',
data: 'searchTxt=' + $(this).val() + '&festival_id=<?php echo $festival_id;?>',
success: function(data) {
suggest = data;
get_autocomplete(suggest);
}
});
});
});
function get_autocomplete(suggest) {
$("#guestname").autocomplete({
minLength: 3,
source: suggest
});
}
Uso esta función jQuery para obtener una lista de invitados. El usuario completa un campo de entrada con un nombre como 'John'. Ajax está buscando en una base de datos invitados con nombre o apellido que contenga 'John'. En el mismo script (PHP), creo un objeto JSON que se parece a ["1234:John Doe","...","..."] (el número es la ID de este invitado, supongo que eso no es importante, solo quiero mencionar eso). Luego paso el JSON a la función de autocompletar de jQuery UI.
Todo funciona bien en FF y Chrome, después de obtener un resultado en forma de JSON, se abre una pequeña ventana debajo del campo de entrada y muestra todas las coincidencias. En IE9 no es como si no funcionara en absoluto, pero como resultado nunca obtengo el objeto JSON completo. Además, la mayoría de las veces tengo que escribir casi el nombre completo para obtener una coincidencia: 'Sulliv' para obtener apellidos como 'Sullivan'. En FF es suficiente escribir 'Sul'.
En la base de datos de invitados hay alrededor de 8.1 entradas. IE no puede manejar un JSON tan grande o tengo que mejorar mi script. ¿Es un problema común con IE y JSON o jQuery?
1 Respuestas
0
Solo debe inicializar el widget de autocompletar una vez y luego puede usar el source
opción para realizar el filtrado en el servidor:
$("#guestname").autocomplete({
minLength: 3,
source: function (request, response) {
$.ajax({
async: true,
url: '../include/searchGuest.php',
dataType: 'json',
data: 'searchTxt=' + request.term + '&festival_id=<?php echo $festival_id;?>',
success: function(data) {
response(data)
}
});
}
});
request.term
es el término que el usuario buscó.response
es la función de devolución de llamada que debe llamar con candidatos de autocompletar.
Respondido el 01 de junio de 12 a las 13:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas jquery json jquery-ui jquery-ui-autocomplete or haz tu propia pregunta.
cajero automático uso el
keyup
evento en el campo de entrada. Con su código no entiendo cómo debo llamar al ajax. - cristianoLa pregunta estúpida es estúpida. Olvídate de eso de arriba. 'Funciona' pero mi problema con el IE todavía existe. Es como si IE no pudiera manejar el JSON. - cristiano
Eso es extraño. ¿Podría limitar los resultados que está devolviendo desde el servidor y ver si todavía ocurre? - Andres Whitaker