我正在尝试在用户输入文本框(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中有三个与“用户正在键入”有关的事件:
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?