【发布时间】:2010-12-11 12:17:51
【问题描述】:
我正在使用 keydown 事件
我在哪里获取密钥代码并将其转换为字符代码。
但是我遇到了一个问题,在键盘上按2 它给出50 和字符代码2
当我在小键盘中按2 时,它会给出键码98,所以当我转换字符码时a
【问题讨论】:
标签: javascript events javascript-events
我正在使用 keydown 事件
我在哪里获取密钥代码并将其转换为字符代码。
但是我遇到了一个问题,在键盘上按2 它给出50 和字符代码2
当我在小键盘中按2 时,它会给出键码98,所以当我转换字符码时a
【问题讨论】:
标签: javascript events javascript-events
这是因为您使用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);
};
【讨论】:
您将在keypress 事件中获得字符代码
试试这个:http://www.w3.org/2002/09/tests/keys.html
他们使用以下代码转换为字符:
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
this 作为键码参考也可能会有所帮助
【讨论】: