Mã phím Space trong JavaScript

Với Space, event.key là " " (a space), event.code là Space và keyCode (đã lỗi thời) là 32. Nhấn phím bất kỳ trong Key Code Finder để xem giá trị trực tiếp.

Cập nhật

Thuộc tínhGiá trị
event.key" " (a space)
event.codeSpace
event.keyCode / which (đã lỗi thời)32

Cách nhận diện Space

document.addEventListener('keydown', (event) => {
  if (event.key === " ") {
    // Space was pressed
  }
});

Dùng event.key để phản ứng với ý 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ý Space như thế nào

Giá trị của key là một ký tự khoảng trắng, không phải “Space”. Space kích hoạt nút và checkbox, đồng thời cuộn trang khi không có thành phần nào khác xử lý; hãy gọi preventDefault() nếu control tùy chỉnh của bạn dùng phím này, nếu không trang sẽ bị nhảy.

Trong React

<input onKeyDown={(e) => { if (e.key === " ") { /* … */ } }} />

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

keyCode của Space là bao nhiêu?
32. Tuy nhiên, giá trị này đã lỗi thời: trong code mới, hãy dùng event.key (“ (khoảng trắng)”) hoặc event.code (Space).
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ự, như Escape hay các phím mũi tên.