我试图在用户输入文本框中获取文本(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>
代码运行没有错误,除了box的值,input text
期间onKeyPress
始终是更改前的值:
问题:如何获取文本框的文本
onKeyPress
?
奖金喋喋不休
HTML DOM 中有三个与“用户正在输入”相关的事件:
onKeyDown
onKeyPress
onKeyUp
在WindowsWM_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
or ,但在更新onKeyPress
之前两者都已提出input.value
- 我无法回复
onKeyUp
,因为它不会随着文本框中的文本更改而发生。
问题:如何在 期间获取文本框的文本onKeyPress
?