使用javascript阻止按键

时间:2014-07-17 20:57:22

标签: javascript jquery html

这是我阻止按键的代码,但我无法阻止这些按键:

{ } | ~

如何将其添加到我的代码中?

<html><head>
<script>
function ort(){
if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97)){event.returnValue = false;}
}
</script>
</head>
<body>
<form onSubmit="return false;">
<input type="text" onKeyPress="ort()">
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

使用它来查找所有字符代码: http://unixpapa.com/js/key.html

您可以使用CTRL-F查找所需的字符代码。

function ort() {
     // if { OR } OR | OR ~ are pressed. (Character codes 122-127)
     if ((event.keyCode >  32 && event.keyCode <  48) || 
   (event.keyCode >  57 && event.keyCode <  65) ||
   (event.keyCode >  90 && event.keyCode <  97) ||
   (event.keyCode > 122 && event.keyCode < 127)) {

        // prevent default behaviour
        event.preventDefault();

        return false;
    }
}

答案 1 :(得分:0)

适用于Chrome:fiddle

用于检查为每个浏览器返回的所有密钥代码,因为它们稍有不同。我找到了key code table这个数据:

        keydown/keyup event.keyCode                    
Opera   MSIE  Firefox  Safari  Chrome    Key pressed
_________________________________________________________
188     188     188     188     188      , <
190     190     190     190     190      . >
191     191     191     191     191      / ?
192     192     192     192     192      ` ~
219     219     219     219     219      [ {
220     220     220     220     220      \ |
221     221     221     221     221      ] }
222     222     222     222     222      ' "

显然,您想要抑制的键与您的预期不同。 这是新的按键处理程序:

function ort(event) {
   if ((event.keyCode >  32 && event.keyCode <  48) || 
       (event.keyCode >  57 && event.keyCode <  65) ||
       (event.keyCode >  90 && event.keyCode <  97) ||
       (event.keyCode > 122 && event.keyCode < 127))
   {
       event.returnValue = false;
   }
}