Я пытаюсь получить текст в текстовом поле по мере того, как пользователь вводит его ( jsfiddle plays ):
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>
Код выполняется без ошибок, за исключением того, что значение в input textполе, во время onKeyPressвсегда значения , прежде чем изменения:

Вопрос : Как получить текст текстового поля во время
onKeyPress?
Бонусный чат
Есть три события, связанных с тем, что «пользователь вводит текст» в HTML DOM:
onKeyDownonKeyPressonKeyUp
В Windows порядок WM_Keyсообщений становится важным, когда пользователь удерживает клавишу, и клавиша начинает повторяться:
WM_KEYDOWN('a')- пользователь толкнул вниз AключаWM_CHAR('a')-aперсонаж получен от пользователяWM_CHAR('a')-aперсонаж получен от пользователяWM_CHAR('a')-aперсонаж получен от пользователяWM_CHAR('a')-aперсонаж получен от пользователяWM_CHAR('a')-aперсонаж получен от пользователяWM_KEYUP('a')- пользователь отпустил Aключ
В результате в текстовом элементе управления появятся пять символов: aaaaa
Важным моментом является то, что вы отвечаете на WM_CHARсообщение, которое повторяется. В противном случае вы пропустите события при нажатии клавиши.
В HTML все немного иначе:
onKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyUp
Html поставляет KeyDownи KeyPressкаждый ключ повторения. И KeyUpсобытие возникает только тогда, когда пользователь отпускает клавишу.
Забрать
- Я могу ответить на
onKeyDownилиonKeyPress, но оба все еще возникают доinput.valueобновления - Я не могу ответить
onKeyUp, потому что этого не происходит при изменении текста в текстовом поле.
Вопрос: Как мне получить текст текстового поля во время onKeyPress?