我正在捕获按键,以与模糊搜索结果的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
。当我将它们与我在网上看到的任何地方进行比较时,这些值都是不正确的。
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假定为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链接):
密钥的Unicode参考编号;
您可以找到Unicode编号表here.
关于javascript - keyCode在Angularjs中显示不正确的代码值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30128431/