Issue com javascript onkeydown - event.white caracteres em maiúsculas

Escrevi um código javascript para pressionar a tecla em uma área de texto. Eu usei o evento onkeydown para capturar a tecla pressionada e estou chamando uma função quando o evento é acionado. Dentro da função, estou usando event.which para pressionar a tecla. Mas isso não está pressionando a tecla correta. Para qualquer caractere pressionado, ele fornece o valor Ascii do caractere maiúsculo correspondente (apenas 65 a 90). Não está fornecendo valores Ascii para os caracteres minúsculos, ou seja, 97 a 122, mesmo que um caractere minúsculo tenha sido digitado. Por exemplo - se eu digitar 'a', ele fornecerá o valor Ascii de 'A' Alguém sabe por que isso está acontecendo? Aqui está o código que estou usando -

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

Eu tentei usar o evento onkeypress. Isso parece funcionar bem, mas não captura alt, controle, teclas de seta etc.

questionAnswers(8)

yourAnswerToTheQuestion