如果我输入“St”,当我按下 t 时,如果我textfield.value
在onkeypress
/onkeydown
函数中输出输入,我只会得到“S”。
为什么是这样?我该如何摆脱这种滞后?
如果我输入“St”,当我按下 t 时,如果我textfield.value
在onkeypress
/onkeydown
函数中输出输入,我只会得到“S”。
为什么是这样?我该如何摆脱这种滞后?
使用keyup
事件而不是keypress
. keydown
将显示击键前的值,keypress
(显然)。
在事件中,仍然可以阻止键入的字符注册,因此输入的值在事件keypress
之后才能更新。keypress
您可以改用该keyup
事件,或用于window.setTimeout()
设置延迟。
因为在 keyup 事件发生之前不会注册击键。所以你应该检测onkeyup
event 而不是onkeypress
.