Numpad-Tasten Key Code in JavaScript

Bei Numpad-Tasten gilt für event.key der Wert 0–9, +, -, *, /, ., für event.code der Wert Numpad0–Numpad9, NumpadAdd … und das veraltete keyCode liefert 96. Drück eine beliebige Taste im Key Code Finder, um ihre Werte live zu sehen.

Aktualisiert am

EigenschaftWert
event.key0–9, +, -, *, /, .
event.codeNumpad0–Numpad9, NumpadAdd …
event.keyCode / which (veraltet)96

Numpad-Tasten erkennen

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

Verwende event.key, um auf die Bedeutung der Taste zu reagieren (sie folgt dem Tastatur-Layout), und event.code für ihre physische Position, zum Beispiel WASD in Spielen. keyCode und which sind veraltet: Sie funktionieren noch, aber ihre Werte unterscheiden sich zwischen Browsern und Layouts.

Wie Browser Numpad-Tasten behandeln

Die Numpad-Ziffern liefern denselben event.key wie die Ziffern in der oberen Reihe, aber andere event.code-Werte (Numpad0–Numpad9) und keyCodes 96–105. NumpadAdd ist 107, NumpadSubtract 109, NumpadMultiply 106, NumpadDivide 111 und NumpadDecimal 110.

In React

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

Häufige Fragen

Was ist der keyCode für Numpad-Tasten?
96. Er ist allerdings veraltet: Verwende im neuen Code event.key („0–9, +, -, *, /, .“) oder event.code (Numpad0).
Was ist der Unterschied zwischen event.key und event.code?
event.key ist das Zeichen oder die Aktion, die die Taste mit dem aktuellen Layout erzeugt; event.code ist die physische Position der Taste und auf jedem Layout gleich.
Soll ich keydown oder keypress verwenden?
keydown. Das keypress-Event ist veraltet und wird nicht für Tasten ausgelöst, die keine Zeichen erzeugen, etwa Escape oder die Pfeiltasten.