Mã phím Numpad trong JavaScript

Với phím Numpad, event.key là 0–9, +, -, *, /, ., event.code là Numpad0–Numpad9, NumpadAdd … và keyCode đã lỗi thời là 96. Nhấn phím bất kỳ trong Key Code Finder để xem giá trị của phím đó ngay lập tức.

Cập nhật

Thuộc tínhGiá trị
event.key0–9, +, -, *, /, .
event.codeNumpad0–Numpad9, NumpadAdd …
event.keyCode / which (đã lỗi thời)96

Cách nhận biết phím Numpad

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

Dùng event.key để phản ứng theo ý nghĩa của phím (giá trị này theo bố cục bàn phím) và event.code để biết vị trí vật lý của phím, ví dụ WASD trong game. keyCode và which đã lỗi thời: chúng vẫn hoạt động, nhưng giá trị khác nhau giữa các trình duyệt và bố cục.

Trình duyệt xử lý phím Numpad thế nào

Các phím số trên Numpad có cùng event.key với các phím số ở hàng trên cùng, nhưng giá trị event.code khác (Numpad0–Numpad9) và keyCode 96–105. NumpadAdd là 107, NumpadSubtract 109, NumpadMultiply 106, NumpadDivide 111 và NumpadDecimal 110.

Trong React

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

Câu hỏi thường gặp

keyCode của phím Numpad là bao nhiêu?
96. Tuy nhiên, thuộc tính này đã lỗi thời. Trong code mới, hãy dùng event.key (“0–9, +, -, *, /, .”) hoặc event.code (Numpad0).
Sự khác nhau giữa event.key và event.code là gì?
event.key là ký tự hoặc hành động mà phím tạo ra theo bố cục hiện tại. event.code là vị trí vật lý của phím, giống nhau trên mọi bố cục.
Nên dùng keydown hay keypress?
keydown. Sự kiện keypress đã lỗi thời và không kích hoạt với các phím không tạo ký tự, chẳng hạn Escape hoặc các phím mũi tên.