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