Jquery Keydown和角色

时间:2017-08-31 12:52:18

标签: javascript jquery

我需要从键盘中捕获一些字符,我必须使用jquery keydown(而不是按键)。

我知道有些人会建议使用按键,但我必须使用keydown,我只需要3个字符来捕获keydown函数。(字符:A,F,X)

这是我的代码。

$("#keypage").keydown(function(e){
  var keycode = e.keyCode;
  if( keycode === 65 || keycode === 70 || keycode === 88) {
    var char = String.fromCharCode(keycode);
  }

  // do something with char
});

这种方法有问题吗?

编辑: 我问了这个问题,因为我想知道如果keydown有这种方法的字符问题。

1 个答案:

答案 0 :(得分:0)

如果您只想检查上面提到的字符,那么可以使用keydown

  

keypress事件通常最容易使用。他们是   可能会导致非美国键盘问题显着减少   布局并不难确定按下了哪个键。您   可以通过执行以下方式输入字符:

if (event.which == null)
  char= String.fromCharCode(event.keyCode);    // old IE   
else if (event.which != 0 && event.charCode != 0)
  char= String.fromCharCode(event.which);     // All others   
else
  // special key 
  

如何处理特殊键上的keypress事件是一个问题。我建议假装他们从未发生过。如果你真的   想要处理特殊的关键事件,你可能应该工作   用keydown和keyup代替。对于keydownkeyup事件,您可以   通过公正来识别最常见的密钥(字母,数字和其他几个)   看着event.keyCode并且或多或少地假装它是一个   ASCII码。但是,它并不是真的,还有很多Javascript手册   说它可以通过做到转换为角色   String.fromCharCode(event.keyCode)错了。在keydownkeyup   事件,密钥代码不是字符代码,这种转换将   为许多键提供狂野的结果。没有一般的便携方式   将密钥代码转换为字符。

     

由于存在错误,许多密钥无法在keydown和   Macintosh Gecko中的keyup。

现在,如果您需要检查复杂的密钥代码及其哈希值,那么按键是最佳选择。有关详细信息,您可以在this link

上阅读keydown,keypress和keyup事件详细信息
相关问题