keydown 事件的键码
Posted
技术标签:
【中文标题】keydown 事件的键码【英文标题】:keycode on keydown event 【发布时间】:2010-12-11 12:17:51 【问题描述】:我正在使用 keydown 事件
我在哪里获取密钥代码并将其转换为字符代码。
但是我遇到了一个问题,在键盘上按2
它给出50
和字符代码2
当我在小键盘中按2
时,它会给出键码98
,所以当我转换字符码时a
【问题讨论】:
【参考方案1】:这是因为您使用keyCode
成员,例如,小写字母“a”和大写字母“A”具有相同的 keyCode,因为是相同的键,但不同的 charCode 因为结果性格不一样。
要获取 charCode,您应该使用keypress
事件,并获取event.charCode
成员(如果可用),否则,您将获得event.keyCode
,对于 IE,keypress 事件具有正确的信息。
看看下面的example:
document.onkeypress = function (e)
e = e || window.event;
var charCode = e.charCode || e.keyCode,
character = String.fromCharCode(charCode);
alert(character);
;
【讨论】:
使用此代码:当我输入“2”时,我得到 charCode 0;键码 50;字符 2;当我输入 Shift-2 时,我得到了相同的结果,但在我的文本框中出现了“@”。 onkeypress 事件似乎不知道您的 Shift 键是否按下....【参考方案2】:只需查看这些解决方案similar 即可满足您的要求
对于键码参考use this
键码取决于浏览器check it
【讨论】:
【参考方案3】:您将在keypress
事件中获得字符代码
试试这个:http://www.w3.org/2002/09/tests/keys.html
他们使用以下代码转换为字符:
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
this 作为键码参考也可能会有所帮助
【讨论】:
以上是关于keydown 事件的键码的主要内容,如果未能解决你的问题,请参考以下文章