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?
используйте событие keyup
вместо keypress
. keydown
покажет значение до нажатия клавиши, как и keypress
(очевидно).
В событии keypress
по-прежнему можно предотвратить регистрацию набранного символа, поэтому значение ввода не может быть обновлено до тех пор, пока не будет выполнено событие keypress
. Вместо этого вы можете использовать событие keyup
или использовать window.setTimeout ()
для установки задержки.
Поскольку нажатие клавиши не регистрируется, пока не произойдет событие нажатия клавиши. Таким образом, вы должны обнаружить событие onkeyup
вместо onkeypress
.