我想限制可以按下的键。
$('.txtComments').keydown(function (event) {
var keys = new Array();
keys[0] = "8";
keys[1] = "46";
keys[2] = "37"
keys[3] = "39"
if(!(....)) //Check whether the keyCode is either of 8, 46, 37, or 39.
{
event.preventDefault();
}
});
感谢您的帮助
答案 0 :(得分:3)
这里最简单(也是最快)的对象是将对象用作map:
var keys = {};
keys[8] = true;
...
if (!keys[event.which]) {
...
请注意,我建议使用event.which代替密钥代码以获得更好的兼容性。
答案 1 :(得分:2)
所以有很多方法可以实现这个:
只需硬编码:
var keyCode = event.which;
if (keyCode != 8 && keyCode != 46 ...)
或检查数组:
var keys = [8, 46, ...];
if (keys.indexOf(keyCode) < 0)
或jQuery等价物:
if ($.inArray(keyCode, keys) < 0)
或检查对象:
var keys = { 8: 1, 46: 1, ... }
if (! (keyCode in keys) ) // or if (!keys[keyCode])
或开关:
switch (keyCode) {
case 8: case 46: ...
// do nothing
break;
default:
event.preventDefault();
}
答案 2 :(得分:1)
jQuery提供实用程序方法jQuery.inArray()
来检查数组是否包含值。
答案 3 :(得分:0)
if(!keys.in_array(event.keyCode));
并将keydown
更改为keypress
<script type="text/javascript">
// Benoit Asselin - http://www.ab-d.fr
Array.prototype.in_array = function(p_val) {
for(var i = 0, l = this.length; i < l; i++) {
if(this[i] == p_val) {
return true;
}
}
return false;
}
</script>
答案 4 :(得分:0)
您可以使用: -
var keys = [];
keys[8] = keys[4] = keys[37] = keys[39] = true;
if(keys[keyval]){
}