我正在尝试在用户输入文本框(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
框,期间onKeyPress
总是值之前的变化:
问题:如何在此期间获取文本框的文本
onKeyPress
?
奖金Chat不休
HTML DOM中有三个与“用户正在键入”有关的事件:
onKeyDown
onKeyPress
onKeyUp
在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中,情况略有不同:
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyUp
HTML会提供一个KeyDown
和KeyPress
每个键重复的位置。并且KeyUp
仅当用户释放密钥时才引发事件。
外卖
- 我可以回应
onKeyDown
或onKeyPress
,但在input.value
在进行更新 - 我无法回应
onKeyUp
,因为在文本框中的文本更改时不会发生。
问题:在期间,如何获取文本框的文本onKeyPress
?