Код клавиши Enter в JavaScript

Для Enter, event.key — это Enter, event.code — Enter / NumpadEnter, а устаревший keyCode — 13. Нажмите любую клавишу в Key Code Finder, чтобы увидеть её значения в реальном времени.

Обновлено

СвойствоЗначение
event.keyEnter
event.codeEnter / NumpadEnter
event.keyCode / which (устарело)13

Как определить 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 для Enter?
13. Однако он устарел: в новом коде используйте event.key («Enter») или event.code (Enter).
В чём разница между event.key и event.code?
event.key — это символ или действие, которое клавиша выдаёт с текущей раскладкой; event.code — физическое положение клавиши, одинаковое на любой раскладке.
Что использовать: keydown или keypress?
keydown. Событие keypress устарело и не срабатывает для клавиш, которые не выдают символов, например Escape или стрелки.