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

时间:2010-08-17 13:14:57

标签: javascript keypress keyboard-events keydown

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

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

3 个答案:

答案 0 :(得分:14)

使用keyup事件代替keypresskeydown会显示前键击值,keypress(显然)也会显示。

答案 1 :(得分:11)

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

答案 2 :(得分:1)

因为在键盘事件发生之前没有注册击键。因此,您应该检测onkeyup事件,而不是onkeypress