Кнопка 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.
Любая помощь будет принята с благодарностью.
Заранее спасибо.