Backspace的Keycode无法正常工作我在IE和谷歌浏览器中尝试过,它既不会在控制台中显示任何内容,也不会显示警报代码:
$(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>
答案 0 :(得分:0)
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>
答案 1 :(得分:0)
按键事件仅在可打印键上引发。要打印任何键,您将需要使用onkeydown事件。它是针对所有人提出的,包括Control,Shift,Alt,BackSpace等不可打印的内容。请在此处阅读有关他们onkeydown事件的更多信息:https://api.jquery.com/keydown/ 这是一个如何结果的例子:
$(document).keydown(function(e) {
答案 2 :(得分:0)
使用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>
答案 3 :(得分:0)
您应该使用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>