我试图得到一个文本框中的文本作为用户键入它(Jsfiddle 游乐场) :
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框的 < em > value ,在 onKeyPress期间总是值 之前的变化:

问题 : 如何在
onKeyPress期间获得文本框的文本?
HTML DOM 中有三个与 “用户正在输入”相关的事件:
onKeyDownonKeyPressonKeyUp在 窗户中,当用户按住一个键并且该键开始重复时,WM_Key消息的顺序就变得很重要:
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消息,即重复的那条消息。否则,按下键时将错过事件。
在 超文本标示语言中,情况略有不同:
onKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyUpHTML 提供一个 KeyDown和 KeyPress每个键重复。只有当用户释放密钥时才会引发 KeyUp事件。
带走
onKeyDown或 onKeyPress,但是在 input.value被更新之前,它们仍然被提升onKeyUp,因为它不会随着文本框中文本的变化而发生。问题: 在 onKeyPress中如何获得文本框的文本?