我正在努力捕获按下的按键,以便与 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?
为什么会出现这样的情况呢? 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
}
最佳答案
我认为您正在寻找的是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/