17

如果我输入“St”,当我按下 t 时,如果我textfield.valueonkeypress/onkeydown函数中输出输入,我只会得到“S”。

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

4

3 回答 3

24

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

于 2010-08-17T13:17:16.343 回答
11

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

于 2010-08-17T13:22:58.283 回答
1

因为在 keyup 事件发生之前不会注册击键。所以你应该检测onkeyupevent 而不是onkeypress.

于 2010-08-17T13:20:03.990 回答