Как определить Enter
document.addEventListener('keydown', (event) => {
if (event.key === "Enter" && !event.isComposing) {
// Enter was pressed
}
});
Используйте event.key для реакции на то, что означает клавиша (она учитывает раскладку клавиатуры), а event.code — для её физического положения, например WASD в играх. keyCode и which устарели: они всё ещё работают, но их значения различаются в разных браузерах и раскладках.
Как браузеры обрабатывают Enter
Enter отправляет форму, когда фокус находится в текстовом поле, и активирует кнопки и ссылки. Проверяйте event.isComposing: пока пользователь вводит текст на китайском, японском или корейском, Enter подтверждает композицию и не должен запускать ваше действие. Клавиша Enter на цифровой клавиатуре имеет такой же key, но code NumpadEnter.
В React
<input onKeyDown={(e) => { if (e.key === "Enter") { /* … */ } }} />Поиск keycode для JavaScript
Нажмите любую клавишу и сразу увидите все свойства события клавиатуры, а также готовый к копированию фрагмент keydown для горячих клавиш.