Ich möchte eine "späte" Antwort hinzufügen, weil ich mit und heute zu kämpfen change
hatte , und vielleicht kann das, was ich am Ende gefunden habe, auch für andere nützlich sein. Grundsätzlich habe ich ein Suchfeld, und ich wollte nur richtig auf das Drücken des kleinen X reagieren (unter Chrome und Opera implementiert FF es nicht) und als Ergebnis einen Inhaltsbereich löschen.keyup
search
Ich hatte diesen Code:
$(some-input).keyup(function() {
// update panel
}
$(some-input).change(function() {
// update panel
}
$(some-input).on("search", function() {
// update panel
}
(Sie sind getrennt, weil ich überprüfen wollte, wann und unter welchen Umständen jeder angerufen wurde).
Es stellt sich heraus, dass Chrome und Firefox unterschiedlich reagieren. Insbesondere behandelt Firefox change
"jede Änderung an der Eingabe", während Chrome dies als "wenn der Fokus verloren geht UND der Inhalt geändert wird" behandelt. In Chrome wurde die Funktion "Update Panel" einmal aufgerufen, in FF zweimal für jeden Tastendruck (einer in keyup
, einer in change
).
Wenn Sie das Feld mit dem kleinen X löschen (das unter FF nicht vorhanden ist), wurde das search
Ereignis unter Chrome ausgelöst : Nein keyup
, Nein change
.
Die Schlussfolgerung? Verwenden Sie input
stattdessen:
$(some-input).on("input", function() {
// update panel
}
Es funktioniert unter allen von mir getesteten Browsern mit demselben Verhalten und reagiert bei jeder Änderung des Eingabeinhalts (Kopieren und Einfügen mit der Maus, automatische Vervollständigung und "X" eingeschlossen).
onchange
Ereignis?