我需要用大写和小写字母捕获普通文本,但我也想获取 alt、ctrl、esc 等的键码。我试图运行两个 jquery 函数 .keypress 和 .keydown,并且只接受.keydown 中的特殊键,但是当它们在一起时,它们只给出一个结果。我正在使用 Chrome,但我还需要尽可能多地支持其他浏览器。
问问题
86 次
2 回答
1
您可以使用jQuery.Event获取特殊键的状态,这是来自侦听器的回调的第一个参数:
http://jsbin.com/epuqig/2/embed?live
jQuery(function($) {
$('input').on('keydown', function(event) {
// event.shiftKey
// event.ctrlKey
// Also to fetch the keyCode use:
// event.which
if ( event.which == 8 && event.shiftKey ) {
// Backspace and shift key is pressed
}
});
});
如果您不关心旧浏览器,则可以使用 vanilla:
window.addEventListener('load', function() {
var inputs = document.querySelectorAll('input');
[].forEach.call(inputs, function(input) {
input.addEventListener('keydown', keydownHandler, false);
});
}, false);
function keydownHandler(event) {
if ( event.keyCode == 8 && event.shiftKey ) {
// Backspace and shift key is pressed!
}
}
如您所见,这几乎是相同的代码片段,但第二个希望在 < IE9 中工作
于 2013-06-17T14:19:07.733 回答
0
$(document).ready(function () {
$(document).keydown(function (e) {
var code = e.keyCode;
if(e.altKey) // you can also use - e.ctrlKey , e.shiftKey
// alt key
}).keyup(function (e) {
var code = e.keyCode;
});
});
于 2013-06-17T14:20:31.467 回答