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