Tengo un control de Autocompletar jQuery UI que dispara una solicitud Ajax cuando minLength = 3. El problema es el siguiente: Digamos que ingreso "fic" como inicial término de búsqueda - esto está bien. Los incendios de solicitud y los resultados se devuelven. Decido que no quiero seleccionar ninguno de los resultados y luego reingreso a la misma búsqueda nuevamente (fic). ¡Esta vez, ninguna solicitud de Ajax dispara!jQuery UI Autocompletar no desencadenando una búsqueda al ingresar un término hasta ahora buscado
Mi código se muestra a continuación:
// ... do request
$("#reportSearch").autocomplete({
delay: 50,
minLength: 3,
source: function(q, add){
$.ajaxSetup ({ cache: false});
$.ajax({
type: "GET",
url: K_URL_REQUEST
Así que, básicamente, la devolución de llamada "fuente" no se dispara en el segundo escenario que he descrito anteriormente. Al parecer, la razón de esto era que el control de autocompletar sostenía en el término de búsqueda anterior y debido a que coincidía - no estaba desencadenando una búsqueda:
// Taken from jquery-ui-1.8.4.custom.min.js
if (a.term != a.element.val()) { // *** THE MATCH IS HERE
//console.log("a.term != a.element.val(): "+a.term+", "+a.element.val());
a.selectedItem = null;
a.search(null, c) // *** SEARCH IS TRIGGERED HERE
}
Con el fin de conseguirlo para disparar cada vez, simplemente restablecí el término de búsqueda a nulo después de que se devolviera una búsqueda. De esta manera funcionó como se esperaba.
El problema es que no entiendo este comportamiento. Pensé que cada búsqueda debería ser distinta. No hay almacenamiento en caché (o no debería ser de todos modos).
Así que, aunque he solucionado mi problema, sigo sintiendo que me he perdido algo aquí.
¿Alguna idea a alguien? ¡Gracias por adelantado!
Whate que hace su [** 'search' **] (http://docs.jquery.com/UI/Autocomplete#event-search) mirada evento ¿me gusta? Según lo entiendo, el autocompletar debería disparar en tu segundo escenario. –
Observe cómo puede ingresar 'jav' para eliminarlo, luego ingréselo nuevamente, y aún funcionará con esta demostración ==> http://jsfiddle.net/KFrQm/. –
Hola Peter: no tengo un evento de búsqueda. No es necesario iniciar la búsqueda. Tienes razón sobre el ejemplo. Me di cuenta de esto antes, la única diferencia es que mi fuente es una solicitud de Ajax. – peetj