我正在使用keydown事件
我获取密码并将其转换为charcode。
但我遇到一个问题,在键盘上按2
它会50
而charcode为2
当我在numpad中按2
时,它会给出密钥代码98
,因此当我转换charcode a
时
答案 0 :(得分:12)
这种情况正在发生,因为您正在使用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);
};
答案 1 :(得分:2)
答案 2 :(得分:1)
您将在keypress
事件中获得字符代码
试试这个:http://www.w3.org/2002/09/tests/keys.html
他们使用以下代码转换为字符:
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
this也可能有用,因为代码参考