Кнопка Shift удерживается в JavaScript

Я написал функцию JS, которая позволяет вводить только цифры. Копия этой функции ниже:

function NumbersOnly(e) {
    var evt = e || window.event;
    if (evt) {
        var keyCode = evt.charCode || evt.keyCode;
        //Allow tab, backspace and numbers to be pressed, otherwise return false for everything.
        //(keyCode>=96 && keyCode<=105) are the numpad numbers        
        if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || keyCode === 9 || keyCode === 8) {


        }
        else {

            evt.returnValue = false;
        }
    }
}

Эта функция прекрасно работает со всеми числами, но моя проблема возникает, когда удерживается клавиша Shift и нажата одна из цифровых клавиш. Возвращаемое значение - один из символов над числами. Например, если я удерживаю нажатой клавишу Shift и нажимаю 7, "& amp;" возвращается, но код ключа все еще 55 !! Я бы ожидал, что это будет по-другому.

Поэтому мой вопрос: как проверить, удерживается ли клавиша Shift. Я попробовал следующую проверку, но она не сработала:

    if (keyCode === 16) {
        evt.returnValue = false;
    }
    else {

        if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || keyCode === 9 || keyCode === 8) {


        }
        else {

            evt.returnValue = false;
        }
    }

Я использую ASP.NET 4.0.

Любая помощь будет принята с благодарностью.

Заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос