【发布时间】:2015-05-09 00:30:11
【问题描述】:
我正在努力捕获按下的按键,以便与 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?
为什么会这样? 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
}
【问题讨论】:
-
小点,与问题无关,但在处理程序中调用
event对象key会造成混淆。如果您包含 jQuery,请尝试key.which作为比较 -
检查你的大写锁定
-
哦,好吧,所以我打开了 CAPS LOCK,现在它给了我正确的值 :( 嗯,你们是如何解决这个问题的?人们没有输入完整的大写字母
-
大声笑,我实际上只需要使用
ng-model而不必依赖这个数组/对象<input type="text" ng-model="searchInput"然后每当我遇到keyUp事件时,我只需检查那个模型大声笑.. .
标签: javascript angularjs keycode