Câu trả lời đã chọn cho câu hỏi này chưa hoàn tất. Nó không xử lý trường hợp một phím ký tự được nhấn kết hợp với phím bổ trợ (ví dụ: CTRL - A).
Hãy thử, ví dụ: nhập CTRL - A sử dụng firefox với mã sau. Câu trả lời hiện tại sẽ xem xét nó như là một nhân vật:
HTML:
<input placeholder="Try typing CTRL-A in Firefox" style="width: 200px"/>
JavaScript:
$("input").keypress(function (e) {
if (e.which !== 0) {
alert(String.fromCharCode(e.which));
}
});
http://jsfiddle.net/4jx7v/
Lưu ý: một cảnh báo sẽ không bị sa thải nếu sử dụng một số trình duyệt (chẳng hạn như Chrome), vì chúng không kích hoạt sự kiện nhấn phím cho đầu vào không phải ký tự.
Một giải pháp tốt hơn có thể là:
HTML:
<input placeholder="Try typing CTRL-A in Firefox" style="width: 200px"/>
JavaScript:
$("input").keypress(function (e) {
if (e.which !== 0 &&
!e.ctrlKey && !e.metaKey && !e.altKey
) {
alert(String.fromCharCode(e.which));
}
});
http://jsfiddle.net/hY5f4/
Trong trường hợp này, các cảnh báo chỉ được kích hoạt khi Một được nhấn, không phải CTRL - A cho tất cả các trình duyệt.
Bắt tốt, và sửa chữa sạch đẹp - đây là một lưu ý quan trọng, như các phím bổ trợ có thể quan trọng để OP là tốt. – cincodenada
Điều đó sẽ giải thích một vài trường hợp cạnh mà tôi nghĩ bàn phím không hoạt động. Cảm ơn bạn đã khắc phục! – twig
Thao tác này sẽ không hoạt động nếu bạn sử dụng tổ hợp phím để nhập ký tự. Ví dụ: 'alt + a' (' å') trên máy Mac sẽ kích hoạt sự kiện onkeyup nhưng không. – Marian