获取按下键的键值

我没有找到如何获得按键的值。 我现在有

$('#info_price').bind('keydown',function(evt){ alert(evt.keyCode); 

但当我按1而不是返回’1’时它返回’49’。

编辑:我知道密钥’1’的Ascii代码。

最终目标是允许人们只将数字写入输入。 所以我想检测非数字而不显示它们。

正如评论中所说的那样是ASCII代码。 要将它作为角色,你可以做到:

 alert(String.fromCharCode(evt.keyCode)); 

对于那些现在谷歌的人,就像我一样

 $('input').on('keydown', function(e) { console.log(e.key); });​ 

在javascript中,每个密钥都与ASCII代码相关联,如下所示

  1-49 2-50 

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

因此,您需要根据按键事件映射此值。

这是一个完整的代码供您使用(不是我的,但我用它):

http://www.selfcontained.us/2009/09/16/getting-keycode-values-in-javascript/

 keycode = { getKeyCode : function(e) { var keycode = null; if(window.event) { keycode = window.event.keyCode; }else if(e) { keycode = e.which; } return keycode; }, getKeyCodeValue : function(keyCode, shiftKey) { shiftKey = shiftKey || false; var value = null; if(shiftKey === true) { value = this.modifiedByShift[keyCode]; }else { value = this.keyCodeMap[keyCode]; } return value; }, getValueByEvent : function(e) { return this.getKeyCodeValue(this.getKeyCode(e), e.shiftKey); }, keyCodeMap : { 8:"backspace", 9:"tab", 13:"return", 16:"shift", 17:"ctrl", 18:"alt", 19:"pausebreak", 20:"capslock", 27:"escape", 32:" ", 33:"pageup", 34:"pagedown", 35:"end", 36:"home", 37:"left", 38:"up", 39:"right", 40:"down", 43:"+", 44:"printscreen", 45:"insert", 46:"delete", 48:"0", 49:"1", 50:"2", 51:"3", 52:"4", 53:"5", 54:"6", 55:"7", 56:"8", 57:"9", 59:";", 61:"=", 65:"a", 66:"b", 67:"c", 68:"d", 69:"e", 70:"f", 71:"g", 72:"h", 73:"i", 74:"j", 75:"k", 76:"l", 77:"m", 78:"n", 79:"o", 80:"p", 81:"q", 82:"r", 83:"s", 84:"t", 85:"u", 86:"v", 87:"w", 88:"x", 89:"y", 90:"z", 96:"0", 97:"1", 98:"2", 99:"3", 100:"4", 101:"5", 102:"6", 103:"7", 104:"8", 105:"9", 106: "*", 107:"+", 109:"-", 110:".", 111: "/", 112:"f1", 113:"f2", 114:"f3", 115:"f4", 116:"f5", 117:"f6", 118:"f7", 119:"f8", 120:"f9", 121:"f10", 122:"f11", 123:"f12", 144:"numlock", 145:"scrolllock", 186:";", 187:"=", 188:",", 189:"-", 190:".", 191:"/", 192:"`", 219:"[", 220:"\\", 221:"]", 222:"'" }, modifiedByShift : { 192:"~", 48:")", 49:"!", 50:"@", 51:"#", 52:"$", 53:"%", 54:"^", 55:"&", 56:"*", 57:"(", 109:"_", 61:"+", 219:"{", 221:"}", 220:"|", 59:":", 222:"\"", 188:"<", 189:">", 191:"?", 96:"insert", 97:"end", 98:"down", 99:"pagedown", 100:"left", 102:"right", 103:"home", 104:"up", 105:"pageup" } }; 

您可以检测所有键值,如下所示:

这是jsFiddle的例子。

 $('textarea').keydown(function(e) { var order = e.which; console.log(order); });​ 

资源。

密钥代码不直接映射到字符值。 相反,您需要查看keypress事件,该事件为您提供charCode属性。 然后,您可以使用String.fromCharCode将其转换为字符串。

要获取ASCII

 String.fromCharCode(); 

ASCII转换为字符串。

Chrome和Opera今天在事件对象中具有只读属性data

它写在MDN上,目前此function是“工作草案”。

https://developer.mozilla.org/en-US/docs/Web/API/InputEvent/data