События клавиатуры

Есть три основных события клавиатуры: keydown, keypress и keyup.

При нажатии клавиши сначала происходит keydown, после чего keypress и только потом keyup, когда клавишу отжали.

События keydown и keyup срабатывают при нажатии любой клавиши, включая служебные. А вот keypress срабатывает, только если нажата символьная клавиша, т. е. нажатие приводит к появлению символа. Управляющие клавиши, такие как Ctrl, Shift, Alt и другие, не генерируют событие keypress.

KeyboardEvent.key и KeyboardEvent.code

Свойство KeyboardEvent.key доступно для чтения и возвращает значение клавиши, нажатой пользователем, принимая во внимание состояние клавиш модификаторов, таких как shiftKey, а так же текущий язык и модель клавиатуры.

KeyboardEvent.key на MDN

Свойство KeyboardEvent.code представляет собой физическую клавишу на клавиатуре (в отличие от символа, сгенерированного нажатием клавиши). Другими словами, это свойство возвращает значение, которое не изменяется с помощью раскладки клавиатуры или состояния клавиш-модификаторов.

KeyboardEvent.code на MDN

Поставьте фокус в окно примера, кликнув в него мышкой, отслеживание событий клавиатуры стоит на элементе window. Вводите символы на клавиатуре и результат будет отображаться в списке.

Ссылка на пример в Codepen.io

Last updated