javascript - 如何在 onKeyPress 期间获取输入文本框的文本?

标签 javascript html input onkeypress

我试图在用户输入文本框时获取文本 (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>

代码运行没有错误,除了 input text 框的 valueonKeyPress 期间始终是该值变化之前:

enter image description here

Question: How do I get the text of a text box during onKeyPress?

奖金聊天

在 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 在每次按键重复时提供一个 KeyDownKeyPressKeyUp 事件仅在用户松开按键时触发。

外卖

  • 可以响应onKeyDownonKeyPress,但在input.value已更新
  • 我无法响应 onKeyUp,因为它不会在文本框中的文本更改时发生。

问题:如何在 onKeyPress 期间获取文本框的文本?

红利阅读

最佳答案

保持简单。同时使用 onKeyPress()onKeyUp():

<input id="edValue" type="text" onKeyPress="edValueKeyPress()" onKeyUp="edValueKeyPress()">

这会负责获取最新的字符串值(在按下键后),并在用户按住某个键时进行更新。

jsfiddle:http://jsfiddle.net/VDd6C/8/

关于javascript - 如何在 onKeyPress 期间获取输入文本框的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11365686/

相关文章:

javascript - 指令范围内的函数不需要被触发

linux - 在基于 linux 的操作系统中禁用特定应用程序的键盘输入?

javascript - var a=something 和 window.a=something 之间有什么区别吗?

javascript - 检查字符串是否与正则表达式匹配

javascript - 每次单击向右滑动一次 div,然后再次单击(左)

PHP:只有 $_FILES 数组的前 20 个索引从 HTML 表单传递到上传脚本

c - C 中的简单输入(Shell 中的输入重定向)

python - 使用函数的输出作为另一个函数的输入 python 编码新手

javascript - 使用 js 在 html 附加中转义斜杠

javascript - 有没有办法在 Robot Framework 中向 "Execute JavaScript"提供参数?