Javascript, значение нажатия клавиши всегда на один символ позади последнего? - PullRequest
12 голосов
/ 17 августа 2010

Если я наберу 'St', к тому времени, когда я нажму на t, если я выведу вход textfield.value в функции onkeypress / onkeydown, я получу только 'S'.

Почему это? Как мне избавиться от этого лага?

Ответы [ 3 ]

14 голосов
/ 17 августа 2010

использовать событие keyup вместо keypress. keydown покажет значение до нажатия клавиши, как keypress (очевидно).

11 голосов
/ 17 августа 2010

В событии keypress все еще возможно предотвратить регистрацию введенного символа, поэтому значение ввода не может быть обновлено до окончания события keypress. Вместо этого вы можете использовать событие keyup или window.setTimeout() для установки задержки.

1 голос
/ 17 августа 2010

Поскольку нажатие клавиши не регистрируется, пока не произойдет событие keyup. Таким образом, вы должны обнаружить событие onkeyup вместо onkeypress.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...