Key code клавиш Numpad в JavaScript

Для клавиш Numpad, event.key — это 0–9, +, -, *, /, ., event.code — это Numpad0–Numpad9, NumpadAdd …, а устаревший keyCode — это 96. Нажмите любую клавишу в Key Code Finder, чтобы увидеть её значения в реальном времени.

Обновлено

СвойствоЗначение
event.key0–9, +, -, *, /, .
event.codeNumpad0–Numpad9, NumpadAdd …
event.keyCode / which (устаревшее)96

Как определить клавиши Numpad

document.addEventListener('keydown', (event) => {
  if (event.code.startsWith('Numpad')) {
    // Numpad keys was pressed
  }
});

Используйте event.key, чтобы реагировать на значение клавиши (оно зависит от раскладки клавиатуры), и event.code для её физического положения, например WASD в играх. keyCode и which устарели: они всё ещё работают, но их значения различаются у разных браузеров и раскладок.

Как браузеры обрабатывают клавиши Numpad

Цифры Numpad имеют тот же event.key, что и цифры верхнего ряда, но другие event.code (Numpad0–Numpad9) и keyCode 96–105. NumpadAdd — 107, NumpadSubtract — 109, NumpadMultiply — 106, NumpadDivide — 111 и NumpadDecimal — 110.

В React

<input onKeyDown={(e) => { if (e.code.startsWith('Numpad')) { /* … */ } }} />

Часто задаваемые вопросы

Какой keyCode у клавиш Numpad?
96. Однако он устарел: в новом коде используйте event.key («0–9, +, -, *, /, .») или event.code (Numpad0).
В чём разница между event.key и event.code?
event.key — это символ или действие, которое клавиша выдаёт при текущей раскладке; event.code — физическое положение клавиши, одинаковое на любой раскладке.
Что использовать: keydown или keypress?
keydown. Событие keypress устарело и не срабатывает для клавиш, которые не выводят символы, например Escape или стрелки.