2011-02-08 64 views
3

无法找到我认为是简单问题的解决方案。我使用var a = evt.keyCode;来确定哪个键被点击。JavaScript keyCode - 使用外部键盘布局点击哪个键

问题是我得到的值是点击键的ASCII代码而不是被点击的真实字符。

如果,例如,一个用户使用法语键盘,点击7关键是é, 所以不是得到的é ASCII码,我得到55这是ASCII代码7

回答

6

您是否使用了onkeypressonkeydown事件?您应该使用前者onkeypress来确定被按下的键的正确字符代码。在事件处理程序,检查event.whichevent.keyCode属性:

function whichKey(evt) { 
    alert(String.fromCharCode(evt.which || evt.keyCode)); 
} 

工作演示:http://jsfiddle.net/7LsMk/

+0

好吧,我在这里看到你的观点。我使用onkeydown,因为这不是我的js代码(取自http://www.codeproject.com/KB/scripting/jsactb.aspx)。 我将尝试修改代码,以便它可以与onkeypress一起使用。 – Ranch 2011-02-08 19:32:22

0

试试这个: var unicode=evt.charCode? evt.charCode : evt.keyCode; var actualkey=String.fromCharCode(unicode);