该keypress
事件是关于字符,而不是键。您可以直接与( )keyCode
的字符代码进行比较,无需担心 shift 键被按下(并且可能并非在所有键盘上都有)。"|"
"|".charCodeAt(0)
示例 - Live Copy | 来源:
HTML:
<p>Try to type | in the box below.</p>
<input id="theInput" type="text" size="80">
JavaScript:
jQuery(function($) {
var keys = [13, "|".charCodeAt(0)];
$("#theInput").keypress(function(e) {
var index;
for (index = 0; index < keys.length; ++index) {
if (keys[index] === e.keyCode) {
display("Denied!");
return false;
}
}
});
function display(msg) {
$("<p>").html(msg).appendTo(document.body);
}
});
或者正如bažmegakapa 指出的那样,由于您已经在使用 jQuery,您可以使用它的inArray
功能:
jQuery(function($) {
var keys = [13, "|".charCodeAt(0)];
$("#theInput").keypress(function(e) {
if ($.inArray(e.keyCode, keys) !== -1) {
display("Denied!");
return false;
}
});
function display(msg) {
$("<p>").html(msg).appendTo(document.body);
}
});