使用javascript onkeydown的问题 - event.which仅以大写形式给出字符

Cod*_*iac 4 javascript onkeypress onkeydown

我写了一段javascript代码,以便在文本区域内按下键.我已经使用onkeydown事件捕获按下的键,并在触发事件时调用函数.在函数中我使用event.which来按下键.但这并没有给出正确的按键.对于任何按下的字符,它给出相应大写字符的Ascii值(仅限65到90).即使输入了小写字符,它也不会为小写字符(即97到122)提供Ascii值.例如 - 如果我输入'a',它会给出'A'的Ascii值.有人知道为什么会这样吗?这是我正在使用的代码 -

var mainDoc = document.getElementById("mainDoc");
mainDoc.onkeydown = function(event){keyPress(event);}
function keyPress(event)
{
    alert("key code : "+ event.which + " );
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用onkeypress事件.这似乎工作正常,但它不捕获alt,控制,箭头键等.

T.J*_*der 6

keydownkeyup没有(大部分)给你的字符在所有,他们给你的键码.keypress是你在哪里得到的字符(如果你需要知道,也修改键的状态,当该字符被输入的,对事件对象的ctrlKey,altKey,shiftKey,和metaKey属性).这个页面进入疯狂,这是JavaScript中的键盘事件的爱心细节......