jQuery / JS Keycodes:一个IF语句中的几个密钥代码

时间:2011-10-05 18:07:59

标签: javascript jquery keycode

我正在尝试为我正在处理的应用设置一些密钥代码,但这确实让我发疯。

我正在尝试设置密钥代码,从keyCode 65到91,44,47和其他几个密码代码都可以运行。

所以我有这个:

var e = event || evt;
if ((e.keyCode > 65 || e.Keycode < 91)){
    // Do function
}

找到了。现在,如果我尝试添加另一个键码,它将无效。 这就是我试过的:

if ((e.keyCode > 65 || e.Keycode < 91) && (e.keyCode == 44) && (e.keyCode == 47)){

有人帮我在一个If语句中添加不同的密钥代码吗?

非常感谢

3 个答案:

答案 0 :(得分:3)

试试这个

if (
  // get all the keys between 65-90
  (e.keyCode >= 65 && e.keyCode <= 90) 
  // or  44 or 47
  || e.keyCode == 44 || e.keyCode == 47)
{
   // do stuff
}

如果条件逻辑绊倒你,我认为你可能最好考虑你想要包括(不排除)的数字。将它们分成范围并将每个范围放在自己的行上。从伪代码开始:

if 
  // keys between 31-47
  // or keys between 58-90
then
  // do stuff
end

然后填写条件:

if (
  // keys between 31-47
  (e.keyCode >= 31 && e.keyCode <= 47) 

  // or keys between 58-90
  || (e.keyCode >= 58 && e.keyCode <= 90) 
)
{
  // do stuff
}

答案 1 :(得分:0)

如果你想要的东西从31到90,除了48到57之外:

if (e.keyCode >= 31 && e.keyCode <= 90 && !(e.keyCode >= 48 && e.keyCode <= 57)) {
  // whatever 
}

现在可以写成:

if (e.keyCode >= 31 && e.keyCode <= 47 || e.keyCode >= 58 && e.keyCode <= 90) {
  // whatever
}

答案 2 :(得分:-1)

if ((e.keyCode > 65 && e.Keycode < 91) || e.keyCode == 44 || e.keyCode == 47){
   //do stuff
}