.keyup non sparare per eliminazione del primo carattere nel campo di input
-
10-10-2019 - |
Domanda
strano fenomeno rilevato con JQuery 1.4.4 per FireF, Chrome, Safari (IE untestested). Obiettivo: aggiornare un elenco mentre l'utente digita un valore di filtro in un semplice, testo di input-box di base. Soluzione: bound evento KeyUp, leggere il valore del input-campo, applicare il filtro ... grosso modo:
$("#myinputfield").keyup(function(e) { myList.filter($(this).val()) });
funziona perfettamente sia per la digitazione e l'eliminazione tranne quando la cancellazione (del o backspace stesso effetto) l'ultima rimanente (== prima) char. in tal caso l'evento non viene affatto. Chiunque con un'idea su quale sia il problema e / o come risolverlo?
(P.S .: La mia soluzione sarebbe quella di cambiare dall'evento keyup vincolante ad un controllo periodico setTimeout fino a quando l'input-campo è attiva, ma che koxind di sente come una fuga sporca ...)
Soluzione
Non riesco a riprodurre il problema. Forse è solo che la funzione di filtro non gestisce $(this).val() == ''
molto bene. Dai un'occhiata a questo test rapido .