keyCode在Angularjs中显示错误的代码值

时间:2015-05-08 16:17:07

标签: javascript angularjs keycode

我正在努力捕获用于模糊搜索结果的API的按键。

无论如何,我正在使用此代码捕获我的标记和指令控制器中的按键:

<input type="text"
       placeholder="Search"
       ng-click="searchPop($event)"
       ng-keypress="typingMainSearch($event)">
vs.typingMainSearch = function(e) {
    console.log(e.keyCode);
    vs.searchPopoverDisplay = true;
};

但是当我输入a时,我得到97,当我输入b时,我得到98

当我将它们与我在线查看的任何地方进行比较时,这些值都是不正确的。

https://jsfiddle.net/3LtLuxbc/3/

http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

Is it possible to listen for arrow keyspress using ng-keypress?

为什么会这样? a 假设 65 b 假设为 66

 var key = {
      'a': 65,
      'b': 66,
      'c': 67,
      'd': 68,
      'e': 69,
      'f': 70,
      'g': 71,
      'h': 72,
      'i': 73,
      'j': 74,
      'k': 75,
      'l': 76,
      'm': 77,
      'n': 78,
      'o': 79,
      'p': 80,
      'q': 81,
      'r': 82,
      's': 83,
      't': 84,
      'u': 85,
      'v': 86,
      'w': 87,
      'x': 88,
      'y': 89,
      'z': 90
  }

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是ng-keyup,而这对您有用:

<input type="text"
       placeholder="Search"
       ng-click="searchPop($event)"
       ng-keyup="typingMainSearch($event)">

根据Mozilla,不推荐使用keypress的keyCode属性。

另外 - 这就是为什么你在点击&#39; a&#39;例如(取自Mozilla链接):

  

密钥的Unicode参考编号;

您可以找到unicode编号表here.