Javascript,按键值总是落后最新的一个字符?

发布于 2024-09-14 16:39:02 字数 152 浏览 13 评论 0原文

如果我输入 'St',当我按下 t 时,如果我在 onkeypress/onkeydown 中输出 textfield.value 的输入函数,我只得到“S”。

这是为什么呢?我如何摆脱这种滞后?

If I type 'St', by the time I press the t, if I output the input of textfield.value in the onkeypress/onkeydown functions, I only get 'S'.

Why is this? How do I get rid of this lag?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

倾城花音 2024-09-21 16:39:02

使用 keyup 事件而不是 keypresskeydown 将显示击键前的值,keypress 也会显示(显然)。

use the keyup event instead of keypress. keydown will show the before-keystroke value, as will keypress (apparently).

幽梦紫曦~ 2024-09-21 16:39:02

keypress 事件中,仍然可以阻止输入的字符注册,因此在 keypress 事件之后才能更新输入的值。您可以改用 keyup 事件,或使用 window.setTimeout() 设置延迟。

Within the keypress event, it's still possible to prevent the typed character from registering, so the input's value canot be updated until after the keypress event. You can use the keyup event instead, or use window.setTimeout() to set up a delay.

柠檬 2024-09-21 16:39:02

因为直到 keyup 事件发生时才注册击键。因此,您应该检测 onkeyup 事件而不是 onkeypress

Because the keystroke is not registered until keyup event occurs. So you should detect onkeyup event instead of onkeypress.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文