2009-02-11 26 views
14

myInput.value ist ein Tastenanschlag, wenn ich es in einem KeyPress-Ereignishandler untersuchen. Wenn also die Benutzer "a" eingeben, gibt mir myInput.value "". Wenn der Benutzer dann "b" eintippt, gibt mir myInput.value "a", und so es. Der Wert scheint nicht mit der Zeicheneingabe durch den Tastenanschlag aktualisiert zu werden, der das Ereignis ausgelöst hat. Was mache ich falsch? danke -MorganAbrufen des Werts eines Formularfelds nach Tastendruckereignis

Antwort

27

Verwenden Sie das KeyUp-Ereignis, sollte es definitiv geben Sie den Wert, den Sie suchen.

+0

Ja. Der neue Tastendruck wird auf den Wert * nach dem * Aufruf von onkeypress angewendet - solange Sie dieses Ereignis nicht abbrechen, indem Sie false von Ihrem Handler zurückgeben. Die Tastenbelegung hingegen erfolgt nach dem Tastendruck. – bobince

+0

großartig. funktioniert perfekt. Vielen Dank. – morgancodes

1

Als ich dieses Problem hatte, war das, was ich eigentlich wollte, der oninput Event-Handler.

Ein bemerkenswerter Unterschied zwischen dieser und der keyUp-Lösung ist, dass wenn Sie z. Halten Sie eine Taste gedrückt, um sie zu wiederholen, der Eingang wird jedes Mal aufgerufen, wenn der Schlüssel wiederholt wird, aber keyUp wird nur aufgerufen, wenn der Schlüssel losgelassen wird.

Verwandte Themen