Горячие клавиши. Запрет ввода в input.
Есть такой скрипт:
document.onkeydown = function(e) {//при событии нажатии клавиш происходит выполнение функции
e = e || window.event;
if (e.shiftKey && e.keyCode == 81) {// если зажата клавиша шифт и клавиша Q, то...
Zauberei(); //Выполняется функция зауберай
}
if (e.shiftKey && e.keyCode == 65) {// если зажата клавиша шифт и клавиша A, то...
NeuScheck(); //Выполняется функция нойечек
}
return true;
}
Проблема в том, что если курсор находится в поле ввода, то туда записывается в верхнем случае буква Й, а в нижнем буква Ф. Что крайне недопустимо. Как предотвратить ввод в поле при использовании горячих клавиш? |
document.onkeydown = function(e) {//при событии нажатии клавиш происходит выполнение функции
e = e || window.event;
if ( !e.which && e.button ) {
e.which = e.button & 1 ? 1 : ( e.button & 2 ? 3 : ( e.button & 4 ? 2 : 0 ) )
}
alert( e.which ); // вот тут можно увидеть номер символа ввода, если не ошибаюсь конечно. =)
if (e.shiftKey && e.keyCode == 81) {// если зажата клавиша шифт и клавиша Q, то...
Zauberei(); //Выполняется функция зауберай
}
if (e.shiftKey && e.keyCode == 65) {// если зажата клавиша шифт и клавиша A, то...
NeuScheck(); //Выполняется функция нойечек
}
return true;
}
|
Добавьте строку
return false;после вызова ваших функций внутри блоков if. |
Спасибо, GuardCat!
Рабочим будет такой скрипт:
document.onkeydown = function(e) {
e = e || window.event;
if (e.shiftKey && e.keyCode == 81) {// если зажата клавиша шифт и клавиша Q, то...
Zauberei(); //Выполняется функция зауберай
return false;
}
if (e.shiftKey && e.keyCode == 65) {// если зажата клавиша шифт и клавиша A, то...
NeuScheck(); //Выполняется функция нойечек
return false;
}
}
Только появилась другая проблема! Удивительно, но при английской раскладке, функция выполняется и ввод символа блокируется. При русской раскладке по прежнему вводятся символы! |
| Часовой пояс GMT +3, время: 10:16. |