jQuery 'input' event
Ich habe noch nie gehört, ein Ereignis in jQuery aufgerufen input
bis ich das sah jsfiddle.
Wissen Sie, warum es funktioniert? Ist es ein alias für keyup
oder so?
$(document).on('input', 'input:text', function() {});
InformationsquelleAutor der Frage silkfire | 2013-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht ganz ein alias für
keyup
weilkeyup
Feuer, auch wenn der Schlüssel nichts tut (zum Beispiel: drücken und dann loslassen der Control-Taste löst einenkeyup
Ereignis).Einem guten Weg zu denken ist es so: es ist ein Ereignis, das immer dann ausgelöst, wenn der Eingang ändert. Dies beinhaltet-ist aber nicht beschränkt auf -- drücken Sie die Tasten ändern Sie den Eingang (also zum Beispiel
Ctrl
von selbst nicht das Ereignis auszulösen, aberCtrl-V
zu fügen Sie einige text), Auswahl einer auto-vervollständigen-option, die Linux-Stil mit der mittleren Maustaste einfügen, drag-and-drop, und viele andere Dinge.Sehen diese Seite und die Kommentare auf diese Antwort für weitere details.
InformationsquelleAutor der Antwort J David Smith
oninput
Veranstaltung ist sehr nützlich, um track-input-Felder wechselt.Aber es wird nicht unterstützt in IE-version < 9. Aber für ältere IE-Versionen hat seine eigene, proprietäre event -
onpropertychange
die macht das gleiche wieoninput
.So können Sie es auf diese Weise:
Haben einen vollen crossbrowser Unterstützung.
Da das propertychange-kann ausgelöst werden, für JEDE Eigenschaft ändern, zum Beispiel der Behinderten-Eigenschaft geändert wird, dann werden Sie wollen, zu tun sind:
InformationsquelleAutor der Antwort claustrofob
Verwendung von jQuery, die folgenden sind identisch in der Wirkung:
Mit der
input
Ereignis, jedoch nur das zweite Muster scheint zu funktionieren in den Browsern die ich getestet habe.So, Sie würden erwarten, dass dies funktioniert, aber es FUNKTIONIERT NICHT (zumindest derzeit):
Wieder, wenn Sie wollte, zu nutzen, die Ereignis-delegation (z.B. zum einrichten der Veranstaltung auf der
#container
vor Ihrerinput.text
Hinzugefügt am DOM), das in den Sinn kommen sollte:Leider wieder, es funktioniert NICHT derzeit!
Nur dieses Muster funktioniert:
BEARBEITET MIT MEHR AKTUELLEN INFORMATIONEN
Kann ich sicher bestätigen, dass dieses Muster:
FUNKTIONIERT JETZT auch in allen "standard" - Browser.
InformationsquelleAutor der Antwort Ifedi Okonkwo
Als claustrofob sagte, oninput unterstützt IE9+.
Allerdings"Das oninput-event buggy ist in Internet Explorer 9. Es wird nicht ausgelöst, wenn Charaktere gelöscht werden, aus einem text-Feld über die Benutzeroberfläche nur als Zeichen eingesetzt sind. Obwohl die onpropertychange event wird unterstützt von Internet Explorer 9, aber ähnlich wie das oninput-event, ist es auch buggy, es nicht ausgelöst wird, auf löschen.
Da Zeichen gelöscht werden können, auf mehrere Arten (Backspace-und Löschen-Tasten, STRG + X Ausschneiden und Löschen-Befehl im Kontextmenü), es gibt keine gute Lösung zur Erkennung von änderungen. Wenn Zeichen gelöscht werden, indem Sie den Befehl Löschen aus dem Kontextmenü, wird die änderung nicht erkannt werden in JavaScript in Internet Explorer 9."
Habe ich gute Ergebnisse Bindung an die Eingabe-und keyup (und keydown, wenn Sie wollen, dass es Feuer im IE bei gedrückter Backspace-Taste).
InformationsquelleAutor der Antwort Zook
Vorsichtig sein, während der Verwendung der INPUT. Dieses Ereignis wird ausgelöst, auf die Konzentration und auf blur im IE 11. Aber es wird ausgelöst, auf den Wandel in anderen Browsern.
https://connect.microsoft.com/IE/feedback/details/810538/ie-11-fires-input-event-on-focus
InformationsquelleAutor der Antwort Ananda Naphade
Ich denke, 'input' einfach hier funktioniert die gleiche Weise 'oninput' in der DOM-Level-O-Ereignis-Modell.
Übrigens:
Nur als silkfire kommentiert es, ich auch gegoogelt für 'jQuery input event'. So wurde ich geführt, um hier und erstaunt zu erfahren, dass 'Eingabe' ist eine akzeptable parameter zu jquery bind() Befehl.
In jQuery in Aktion (p. 102, 2008 Hrsg.) 'input' nicht wissen, wie eine mögliche Veranstaltung (gegen 20 andere, von 'blur' zu 'entladen'). Es ist wahr, dass p. 92, im Gegenteil könnte man aus Wiederlesen (D. H. von einer Bezugnahme auf verschiedene string-Bezeichner zwischen Level 0 und Level-2-Modelle). Das ist ziemlich irreführend.
InformationsquelleAutor der Antwort Brice Coustillas
jQuery hat die folgende Signatur für die
.on()
Methode:.on( events [, selector ] [, data ], handler )
Ereignisse könnte jemand von denen aufgeführt ist, auf diesen Hinweis:
https://developer.mozilla.org/en-US/docs/Web/Events
Obwohl, Sie sind nicht alle von jedem browser unterstützt wird.
Mozilla besagt Folgendes über die Eingabe-Ereignis:
InformationsquelleAutor der Antwort Robert Rocha
funktioniert in IE und chrome
InformationsquelleAutor der Antwort Raj