Подтвердить что ты не робот

Какая разница между нажатиями клавиш, нажатиями клавиш, нажатиями клавиш и вводами?

Я пытаюсь понять события jQuery keypress, keydown, keyup и ввода. Но я нашел их довольно запутанными. Может ли кто-нибудь указать на точные различия? Также я хотел бы знать, все ли они срабатывают, когда пользователь вставляет фрагмент текста.
Благодаря

4b9b3361

Ответ 1

Согласно jQuery docs:

Событие keypress отправляется элементу, когда браузер регистрирует ввод с клавиатуры. Это похоже на событие keydown, за исключением того, что модификатор и непечатаемые клавиши, такие как Shift, Esc и delete, вызывают события с момента запуска, но не события нажатия клавиш. Другие различия между этими двумя событиями могут возникать в зависимости от платформы и браузера.

Событие keyup отправляется элементу, когда пользователь отпускает ключ на клавиатуре.

Событие oninput - событие, которое запускается каждый раз, когда изменяется вход.

Однако входное событие не поддерживается в версии IE ниже 9. В этом случае вы можете использовать проприетарное событие onpropertychange, оно делает то же самое, что и oninput.

Но в вашем случае вы можете использовать событие вставить и изменить вместе. Вы должны использовать изменить, потому что вставить выполняется только в браузерах, которые поддерживают его при явной вставке.