I have this jQuery which stops the enter key from being pressed and I have prepared it to accept an array of disallowed keypresses..
$('.form input').bind('keypress', function(e) {
var keys = [13];
for (var i = keys.length; i--;){
if(e.keyCode===keys[i]){
return false;
}
}
});
I want to do similar thing with the | character, but since it is shift of 220 and I don’t need to stop \ from being entered into the form, how do I restrict that character or use a modifier key? (will also be processing it out server-side, of course).
I’m also aware that keyboard layout for special characters may differ from keyboard to keyboard with different localization, so it may be necessary to focus on the resulting character rather than the key itself (not entirely sure on that), but I don’t want to introduce a large amount of overhead
The
keypressevent is about characters, not keys. You can just comparekeyCodeto the character code for"|"("|".charCodeAt(0)) directly, no need to worry about the shift key being down (and it may not be on all keyboards).Example – live copy | source:
HTML:
JavaScript:
Or as bažmegakapa points out, since you’re already using jQuery, you can use its
inArrayfunction: