Khi KeyboardEvent
xảy ra hỏa hoạn, bạn có thể kiểm tra phím nào đã được nhấn vì sự kiện đó chứa thông tin mà bạn có thể viết logic chống lại.
document.addEventListener("keydown", function(event) ( console.log(event.which); ))
Ví dụ: bằng cách nhấn “a”, bạn sẽ nhận được 65
. Rõ ràng tốt nhất là viết logic dựa vào đó, vì Mã khóa và Mã biểu tượng rất phức tạp:
Thuộc tính event.which chuẩn hóa event.keyCode và event.charCode. Bạn nên xem event.which để nhập phím bàn phím.
Và:
Trong một sự kiện nhấn phím, giá trị Unicode của phím được nhấn được lưu trữ trong thuộc tính keyCode hoặc charCode, không bao giờ cả hai. Nếu phím được nhấn tạo ra một ký tự (ví dụ: 'a'), thì Mã ký tự được đặt thành mã của ký tự đó, tương ứng với kiểu chữ cái. (nghĩa là charCode sẽ tính đến việc phím shift có được giữ hay không). Nếu không, mã của phím đã nhấn được lưu trong Mã khóa.
Công cụ kiểm tra
Xem trình kiểm tra Pen event.keyCode của Chris Coyier (@chriscoyier) trên CodePen.
Giá trị mã khóa
Đây là một bảng chứa các giá trị từ event.which
.
|
|
|
Zell Liew nhận thấy rằng 3 trong số các mã khóa này trong Firefox khác với các trình duyệt còn lại
;
là 59 trong Firefox nhưng 186 trong các trình duyệt khác.=
là 61 trong Firefox nhưng 187 trong các trình duyệt khác.-
là 173 trong Firefox nhưng 189 trong các trình duyệt khác.
Lưu ý quan trọng: Các giá trị mã khóa này chỉ có giá trị trong các sự kiện keydown
và trong keyup
. Trên Mac, keypress
các sự kiện cung cấp cho bạn một bộ mã hoàn toàn khác.
Ví dụ:
Chìa khóa | event.which trong keydown | event.which bằng cách nhấn phím |
a | 65 | 97 |
b | 66 | 98 |
c | 67 | 99 |