KeyboardEvent thuộc tính nào
Thí dụ
Nhận giá trị Unicode của phím bàn phím đã nhấn:
var x = event.which;
Thêm các ví dụ "Hãy tự mình thử" bên dưới.
Định nghĩa và Cách sử dụng
Thuộc tính nào trả về mã ký tự Unicode của khóa đã kích hoạt sự kiện onkeypress hoặc mã khóa Unicode của khóa đã kích hoạt sự kiện onkeydown hoặc onkeyup .
Sự khác biệt giữa hai loại mã:
- Mã ký tự - Một số đại diện cho một ký tự ASCII
- Mã khóa - Một số đại diện cho một phím thực trên bàn phím
Những loại này không phải lúc nào cũng có nghĩa giống nhau; ví dụ: chữ thường "w" và chữ hoa "W" có cùng mã bàn phím, vì phím được nhấn trên bàn phím giống nhau (chỉ là "W" = số "87"), nhưng khác mã ký tự vì ký tự kết quả là khác ("w" hoặc "W", là "119" hoặc "87") - Xem "Ví dụ khác" bên dưới để hiểu rõ hơn.
Mẹo: Để tìm hiểu xem người dùng có đang nhấn phím có thể in được hay không (ví dụ: "a" hoặc "5"), bạn nên sử dụng thuộc tính này trong sự kiện onkeypress. Để tìm hiểu xem người dùng có đang nhấn phím chức năng hay không (ví dụ: "F1", "CAPS LOCK" hoặc "Home"), hãy sử dụng sự kiện onkeydown hoặc onkeyup.
Lưu ý: Thuộc tính nào không được hỗ trợ trong IE8 trở về trước. Đối với các phiên bản trình duyệt này, bạn có thể sử dụng thuộc tính Mã khóa . Tuy nhiên, thuộc tính keyCode không hoạt động trên sự kiện onkeypress trong Firefox. Đối với giải pháp trình duyệt chéo, bạn có thể sử dụng mã sau:
var x = event.which || event.keyCode; // Use either which or keyCode, depending on browser support
Mẹo: Để biết danh sách tất cả các ký tự Unicode, vui lòng nghiên cứu Tài liệu tham khảo Unicode hoàn chỉnh của chúng tôi .
Mẹo: Nếu bạn muốn chuyển đổi giá trị Unicode trả về thành một ký tự, hãy sử dụng phương thức fromCharCode () .
Lưu ý: Thuộc tính này là chỉ đọc.
Lưu ý: Cả thuộc tính which và keyCode đều chỉ được cung cấp để tương thích. Phiên bản mới nhất của Đặc tả sự kiện DOM khuyên bạn nên sử dụng thuộc tính khóa thay thế (nếu có).
Mẹo: Nếu bạn muốn tìm hiểu xem phím "ALT", "CTRL", "META" hoặc "SHIFT" có được nhấn khi một sự kiện chính xảy ra hay không, hãy sử dụng thuộc tính altKey , ctrlKey , metaKey hoặc shiftKey .
Hỗ trợ trình duyệt
Các số trong bảng chỉ định phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ thuộc tính.
Property | |||||
---|---|---|---|---|---|
which | Yes | 9.0 | Yes | Yes | Yes |
Cú pháp
event.which
Chi tiết kỹ thuật
Giá trị trả lại: | Một Số, đại diện cho mã ký tự Unicode hoặc mã khóa Unicode |
---|---|
Phiên bản DOM: | Sự kiện DOM cấp 2 |
Các ví dụ khác
Thí dụ
Sử dụng onkeypress và onkeydown để chứng minh sự khác biệt giữa mã ký tự và mã bàn phím:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">
function uniCharCode(event) {
var char = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}
Khi nhấn phím "a" trên bàn phím (không sử dụng phím caps lock), kết quả của ký tự và phím sẽ là:
Unicode CHARACTER code: 97
Unicode KEY code: 65
Thí dụ
Thông báo một số văn bản nếu người dùng nhấn phím Escape:
<input type="text" onkeydown="myFunction(event)">
function myFunction(event) {
var x = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
if (x == 27) { // 27 is the ESC key
alert ("You pressed the Escape key!");
}
}
Thí dụ
Chuyển giá trị Unicode thành một ký tự (không hoạt động đối với các phím chức năng):
var x = event.which || event.keyCode; // Get the Unicode value
var y = String.fromCharCode(x); // Convert the value into a character
Các trang liên quan
Tham chiếu DOM HTML: Thuộc tính phím KeyboardEvent
Tham chiếu DOM HTML: Thuộc tính keyCode KeyboardEvent
Tham chiếu HTML DOM: Thuộc tính mã charCode KeyboardEvent