backspace的键代刚刚起作用,我在IE和Google Chrome中尝试过,并且在控制台或警报代码中均未显示任何内容:
$(document).keypress(function(e) {
console.log(e.which);
if (e.which == 13) {
window.alert("enter");
} else if (e.which == 8) {
window.alert("backspace");
} else {
$("#prompt").append(String.fromCharCode(e.which));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
keyPress
事件仅针对字符(可打印(键调用,keyDown
事件均已为所有人(包括非打印机
$(document).keydown(function(e) {
console.log(e.which);
if (e.which == 13) {
window.alert("enter");
} else if (e.which == 8) {
window.alert("backspace");
} else {
$("#prompt").append(String.fromCharCode(e.which));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
参考
您应该使用keyup
而不是keypress
事件,因为某些键(例如BackSpace(不会导致该事件发射。
$(document).keyup(function(e) {
console.log(e.which);
if (e.which == 13) {
window.alert("enter");
} else if (e.which == 8) {
window.alert("backspace");
} else {
$("#prompt").append(String.fromCharCode(e.which));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
键盘事件仅在可打印键上唤起。要打印任何键,您需要使用onkeydown事件。它为所有人提供了筹集的培训,例如控制,换档,ALT,Backspace等。在此处阅读有关他们onkeydown事件的更多信息:https://api.jquery.com/keydown/这是结果的示例:
$(document).keydown(function(e) {
使用keyup
代替keypress
获取所有键代码
$(document).keyup(function(e) {
console.log(e.which);
if (e.which == 13) {
window.alert("enter");
} else if (e.which == 8) {
window.alert("backspace");
} else {
$("#prompt").append(String.fromCharCode(e.which));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>