我怎么知道<input/>在按键时的值是多少?

我在“keypress”事件上有一个事件侦听器:

input.addEventListener("keydown", function(e) { ... }

当我读取输入字段的值时,它尚未更新。有没有办法在等待“keyup”事件之前知道输入的值是多少?

注意:我尝试使用 asetTimeout(function() { ... }, 1);但它不适用于复制/粘贴(输入值未更新)。当我将超时设置为 10 毫秒时,它在我的测试中确实有效,但感觉它不是一个强大的解决方案(可能取决于硬件的速度)。

回答

也许更强大的解决方案是监听input事件?但是,这不会捕获所有不会更改/改变输入值的键盘事件(例如按下Home/End按钮):

document.querySelector('input').addEventListener('input', (e) => {
  console.log(e.target.value);
});
<input type="text" />
<input type="text" />

或者,如果您真的想依赖键盘事件,那么keyup就是您想要监听的事件,因为它是在按键被解除后触发的:

document.querySelector('input').addEventListener('keyup', (e) => {
  console.log(e.target.value);
});


以上是我怎么知道&lt;input/&gt;在按键时的值是多少?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>