Welche Ereignisse löst ein <input type = “number” /> aus, wenn sein Wert geändert wird?


Antworten:


73

change wäre das Ereignis, das ausgelöst wird, wenn sich der Wert des Feldes ändert.

Ich denke, das HTML5-Ereignis inputwürde auch ausgelöst.


36
wird nur oninputausgelöst, wenn auf die Pfeile "Auf" und "Ab" geklickt wird.
N 1.1

2
aber onchange feuert nur bei Unschärfe, zumindest bei Firefox. Ich denke, wir müssen nach Tastendruck suchen.
Andho

onchange und oninput funktionierten beide in Opera, aber nur oninput funktionierte in Chrome (und nur dann, wenn ich vom Event-Handler false zurückgab - andernfalls würde Chrome das oninput-Ereignis wiederholt auslösen)
Ian Oxley

2
changewird nicht ausgelöst, wenn der Wert eingegeben wird, sondern nur, wenn auf die Schaltflächen geklickt wird (zumindest in Firefox).
Timmmm

5
inputist wie eine Fusion zwischenkeyup change
Thanh Trung

37

Ich fand heraus, dass für jQuery der folgende Code Tastatureingaben, Mausradänderungen und Tastenklicks in Chrome sowie Tastatureingaben in Firefox abdeckte

$("input[type=number]").bind('keyup input', function(){
    // handle event
});

2
Fügen Sie auch 'change' hinzu und es ist perfekt. Sie sollten immer noch auf externe Änderungen achten, und es schadet sowieso nicht, sie hinzuzufügen.
Matt Fletcher

Und auch 'Mausrad', wenn Sie Bildlaufereignisse im Eingabefeld erfassen möchten.
Matt Fletcher

4
Beachten Sie, dass .bind()jetzt zugunsten von.on()
Michael Hays

7

Ich habe das gefunden onkeyupund onchangealles in Chrome 19 behandelt. Dies behandelt die direkte Werteingabe, das Drücken der Pfeiltasten nach oben, das Klicken auf die Schaltflächen und das Scrollen des Mausrads.

onchangeallein würde in Chrome ausreichen, aber andere Browser, die das Feld nur als Textfeld rendern, benötigen die onkeyupBindung, die perfekt funktioniert, um den neuen Wert zu lesen.

Die mousewheelVeranstaltung separat zu binden war weniger erfolgreich. Das Ereignis wurde zu früh ausgelöst - bevor der Feldwert aktualisiert wurde - und gab daher immer den vorherigen Wert des Felds an


Dies gilt auch für Firefox.
Barfuin

5

Das onchangeEreignis wird bei Unschärfe ausgelöst, aber das oninputEreignis wird während der Eingabe ausgelöst. Vielleicht möchten Sie einen Timer auf das oninputEreignis setzen und Ihr onchangeEreignis auslösen , wenn der Benutzer für eine Sekunde aufgehört hat zu tippen?


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.