Emitir con JavaScript onkeydown - evento.que da caracteres en mayúsculas solamente

He escrito un fragmento de código JavaScript para presionar la tecla dentro de un área de texto. He usado el evento onkeydown para capturar la tecla presionada y estoy llamando a una función cuando se activa el evento. Dentro de la función, estoy usando event.which para presionar la tecla. Pero esto no está dando la tecla correcta presionada. Para cualquier carácter presionado, proporciona el valor Ascii del carácter de mayúscula correspondiente (solo 65 a 90). No está dando valores Ascii para los caracteres en minúscula, es decir, 97 a 122, incluso si se ha escrito un carácter en minúscula. Por ejemplo, si escribo 'a' da el valor Ascii de 'A' ¿Alguien sabe por qué sucede esto? Aquí está el código que estoy usando -

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

Intenté usar el evento onkeypress. Esto parece funcionar bien, pero no captura las teclas alt, control, flechas, etc.

Respuestas a la pregunta(8)

Su respuesta a la pregunta