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

标签 javascript angularjs keycode

我正在努力捕获按下的按键,以便与 API 一起使用以获得模糊搜索结果。

无论如何,我使用此代码来捕获标记和指令 Controller 中的按键:

<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

<小时/>

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

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

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

http://jsfiddle.net/YKeye/

为什么会出现这样的情况呢? a 假设为 65b 假设为 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
  }

最佳答案

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

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

根据Mozilla keypress 的 keyCode 属性已被弃用。

另外 - 这就是为什么您在单击“a”时看到 97(取自 Mozilla 链接):

The Unicode reference number of the key;

可以找到unicode编号表here.

关于javascript - keyCode 在 Angularjs 中显示错误的代码值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30128431/

相关文章:

javascript - 如何从 Mapbox GL JS 中的 geojson 源获取独特的特征属性?

javascript - AngularJS 将特定数据绑定(bind)到模板

c# - .NET 中 ","(逗号)和 "."(点)的 KeyCode 是什么?

c# - 从 Excel 复制并粘贴到 Windows 窗体

javascript - 如何在node js中转换时间戳结果

javascript - 清除 div 内任何输入值的简单方法?

angularjs - 未调用链接函数

javascript - Angularjs 设置迭代模型时不显示

android - KEYCODE_POWER 仅在长按时调度

javascript - map fluid motion 用最新的mapbox(1.6.2) API,如何实现?