Eingangsänderung in jQuery erkennen?
Bei der Verwendung von jquery .change
auf eine input
das Ereignis wird nur ausgelöst, wenn der Eingang den Fokus verliert
In meinem Fall, ich brauche, um einen Anruf zu dem Dienst (prüfen Sie, ob der Wert auch gültig ist), sobald der eingegeben Wert geändert wird. Wie könnte ich dies erreichen?
InformationsquelleAutor der Frage Banshee | 2011-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
AKTUALISIERT für Erklärung und Beispiel
Beispiele: http://jsfiddle.net/pxfunc/5kpeJ/
Methode 1.
input
VeranstaltungIn modernen Browsern verwenden Sie die
input
Veranstaltung. Dieses Ereignis wird ausgelöst, wenn der Benutzer die Eingabe in ein Textfeld, einfügen, rückgängig machen, im Grunde, wenn der Wert geändert, wird von einem Wert zu einem anderen.In jQuery tun, wie diese
beginnend mit jQuery 1.7, ersetzen
bind
miton
:Methode 2.
keyup
VeranstaltungFür ältere Browser verwenden Sie die
keyup
event (dieses wird ausgelöst, sobald eine Taste auf der Tastatur gelöst hat, dieses Ereignis geben können, eine Art " false-positive, weil, wenn "w" wird veröffentlicht und die input-Wert geändert und diekeyup
- Ereignis ausgelöst wird, sondern auch, wenn die "shift" - Taste losgelassen wird, diekeyup
event feuert, aber keine änderung vorgenommen wurde, um den Eingang.). Auch bei dieser Methode nicht ausgelöst, wenn der Benutzer mit der rechten Maustaste und Pasten aus dem Kontext-Menü:Methode 3. Timer (
setInterval
odersetTimeout
)Zu bekommen, um die Grenzen der
keyup
Sie können einen timer einstellen, um in regelmäßigen Abständen überprüfen Sie den Wert der Eingabe zu bestimmen, eine änderung im Wert. Sie könnensetInterval
odersetTimeout
zu tun, dieser timer überprüfen. Sehen Sie die markierte Antwort auf diese Frage ALSO: jQuery textbox-change-Ereignis oder sehen Sie die Geige für ein funktionsfähiges Beispiel mitfocus
undblur
Veranstaltungen zu starten und stoppen Sie den timer für eine bestimmte input-FeldInformationsquelleAutor der Antwort MikeM
Wenn du hast HTML5:
oninput
(feuert nur dann, wenn eine änderung passiert eigentlich, macht es aber sofort)Andernfalls müssen Sie prüfen, für all diese Ereignisse, die zeigen könnten, dass eine Veränderung der input-Elements Wert:
onchange
onkeyup
(nichtkeydown
oderkeypress
wie der Eingabe wird nicht der Wert haben Sie die neue Tastenkombination in der es noch nicht)onpaste
(wenn unterstützt)und vielleicht:
onmouseup
(Ich bin mir nicht sicher über diese)InformationsquelleAutor der Antwort Alnitak
Mit HTML5 und ohne die Verwendung von jQuery können Sie mit dem
input
- Ereignis:Dieser ausgelöst wird, jedes mal, wenn der Eingabe ändert sich der text.
Unterstützt IE9+ und anderen Browsern.
Versuchen Sie es in einer live -jsFiddle hier.
InformationsquelleAutor der Antwort Drew Noakes
Wie andere schon angedeutet, die Lösung in Ihrem Fall ist sniff mehrere Ereignisse.
Plugins, die diesen job tun oft hören Sie die folgenden Ereignisse:
Wenn Sie denken, dass es passen kann, können Sie hinzufügen
focus
blur
und andere Veranstaltungen zu.Ich schlage vor, nicht zu überschreiten, in die Ereignisse zu hören, während es geladen wird im Speicher des Browsers weitere Verfahren zur Ausführung entsprechend den user-Verhalten.
Achtung: beachten Sie, dass Sie den Wert von einem input-element mit JavaScript (z.B. durch die jQuery
.val()
- Methode) wird nicht ausgelöst, Ereignisse oben.(Referenz: https://api.jquery.com/change/).
InformationsquelleAutor der Antwort Emanuele Del Grande
Wenn das event gefeuert werden, wenn etwas geändert wird innerhalb des Elements dann könnten Sie den keyup Veranstaltung.
InformationsquelleAutor der Antwort Jivings
Gibt es jQuery events wie keyup und keypress die Sie verwenden können, mit Eingabe von HTML-Elementen.
Sie könnte zusätzlich verwenden die blur() Veranstaltung.
InformationsquelleAutor der Antwort softwaredeveloper
Dieser deckt jeder änderung an einer Eingabe mit Hilfe von jQuery 1.7 und höher:
InformationsquelleAutor der Antwort rybo111
//.blur wird ausgelöst, wenn das element den Fokus verliert
//Auslösen manuell verwenden:
InformationsquelleAutor der Antwort Kszili