Я пытаюсь понять события jQuery keypress, keydown, keyup и ввода. Но я нашел их довольно запутанными. Может ли кто-нибудь указать на точные различия? Также я хотел бы знать, все ли они срабатывают, когда пользователь вставляет фрагмент текста.
Благодаря
Какая разница между нажатиями клавиш, нажатиями клавиш, нажатиями клавиш и вводами?
Ответ 1
Согласно jQuery docs:
Событие keypress отправляется элементу, когда браузер регистрирует ввод с клавиатуры. Это похоже на событие keydown, за исключением того, что модификатор и непечатаемые клавиши, такие как Shift, Esc и delete, вызывают события с момента запуска, но не события нажатия клавиш. Другие различия между этими двумя событиями могут возникать в зависимости от платформы и браузера.
Событие keyup отправляется элементу, когда пользователь отпускает ключ на клавиатуре.
Событие oninput - событие, которое запускается каждый раз, когда изменяется вход.
Однако входное событие не поддерживается в версии IE ниже 9. В этом случае вы можете использовать проприетарное событие onpropertychange, оно делает то же самое, что и oninput.
Но в вашем случае вы можете использовать событие вставить и изменить вместе. Вы должны использовать изменить, потому что вставить выполняется только в браузерах, которые поддерживают его при явной вставке.