Ho un controllo di completamento automatico dell'interfaccia utente jQuery che genera una richiesta Ajax quando minLength = 3. Il problema è il seguente: Dire che inserisco "fic" come iniziale termine di ricerca - questo va bene. La richiesta viene attivata e i risultati vengono restituiti. Decido che non voglio selezionare nessuno dei risultati e quindi reinserire di nuovo la stessa ricerca (fic). Questa volta non viene emessa alcuna richiesta Ajax!jQuery UI Il completamento automatico non avvia una ricerca quando si digita un termine cercato
Il mio codice è il seguente:
// ... do request
$("#reportSearch").autocomplete({
delay: 50,
minLength: 3,
source: function(q, add){
$.ajaxSetup ({ cache: false});
$.ajax({
type: "GET",
url: K_URL_REQUEST
Quindi, in pratica la richiamata "fonte" non viene generato nel secondo scenario che ho descritto sopra. Sembrava che la ragione di questo è che il controllo di completamento automatico teneva sul termine di ricerca precedente e perché abbinato - non è stato innescando una ricerca:
// 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
}
Per ottenerlo per sparare ogni volta, ho semplicemente reimpostato il termine di ricerca su null dopo una ricerca restituita. In questo modo ha funzionato come previsto.
Il fatto è che non capisco questo comportamento. Avrei pensato che ogni ricerca dovrebbe essere distinta. Non c'è cache (o non dovrebbe essere comunque).
Quindi, anche se ho risolto il problema, sento di aver perso qualcosa qui.
Qualche idea a qualcuno? Grazie in anticipo!
Whate fa il tuo [** 'search' **] (http://docs.jquery.com/UI/Autocomplete#event-search) sguardo evento piace? A quanto ho capito, il completamento automatico dovrebbe sparare nel secondo scenario. –
Nota come puoi inserire 'jav' cancellarlo, quindi inserirlo di nuovo, e funzionerà ancora con questa demo ==> http://jsfiddle.net/KFrQm/. –
Ciao Peter - Non ho un evento di ricerca. Non è necessario dare il via alla ricerca. Hai ragione sull'esempio. L'ho capito prima - l'unica differenza è che la mia fonte è una richiesta di ajax. – peetj