Ich versuche, den Text in ein Textfeld zu bekommen, während der Benutzer ihn eingibt ( jsfiddle playground ):
function edValueKeyPress() {
var edValue = document.getElementById("edValue");
var s = edValue.value;
var lblValue = document.getElementById("lblValue");
lblValue.innerText = "The text box contains: " + s;
//var s = $("#edValue").val();
//$("#lblValue").text(s);
}
<input id="edValue" type="text" onKeyPress="edValueKeyPress()"><br>
<span id="lblValue">The text box contains: </span>
Der Code wird fehlerfrei ausgeführt, mit der Ausnahme, dass der Wert der input textBox während onKeyPressimmer der Wert vor der Änderung ist:

Frage : Wie erhalte ich währenddessen den Text eines Textfelds
onKeyPress?
Bonus Chatter
Es gibt drei Ereignisse im Zusammenhang mit "Der Benutzer tippt" im HTML-DOM:
onKeyDownonKeyPressonKeyUp
In Windows wird die Reihenfolge der WM_KeyNachrichten wichtig, wenn der Benutzer eine Taste gedrückt hält und sich die Taste wiederholt:
WM_KEYDOWN('a')- Benutzer hat die ATaste gedrücktWM_CHAR('a')- EinaZeichen wurde vom Benutzer empfangenWM_CHAR('a')- EinaZeichen wurde vom Benutzer empfangenWM_CHAR('a')- EinaZeichen wurde vom Benutzer empfangenWM_CHAR('a')- EinaZeichen wurde vom Benutzer empfangenWM_CHAR('a')- EinaZeichen wurde vom Benutzer empfangenWM_KEYUP('a')- Der Benutzer hat den ASchlüssel freigegeben
Es werden fünf Zeichen in einem Textsteuerelement angezeigt: aaaaa
Der wichtige Punkt ist, dass Sie auf die WM_CHARNachricht antworten , die sich wiederholt. Andernfalls verpassen Sie Ereignisse, wenn eine Taste gedrückt wird.
In HTML sieht es etwas anders aus:
onKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyUp
HTML liefert eine KeyDownund KeyPressjede Schlüsselwiederholung. Und das KeyUpEreignis wird nur ausgelöst, wenn der Benutzer den Schlüssel loslässt.
Nehmen Sie weg
- Ich kann auf
onKeyDownoder antwortenonKeyPress, aber beide werden noch angehoben, bevor dasinput.valueaktualisiert wurde - Ich kann nicht antworten
onKeyUp, da dies nicht geschieht, wenn sich der Text im Textfeld ändert.
Frage: Wie erhalte ich währenddessen den Text eines Textfelds onKeyPress?
Bonuslesung
onKeyUpzeigt die Änderungen im Textfeld nicht sofort an .