В настоящее время ваш метод "protectDefault ()" срабатывает при всех обстоятельствах, мешая другим клавишам работать должным образом.Вам действительно нужно сделать это только в том случае, если вы обнаружите, что клавиша является F1, в частности:
Демонстрация нерабочего кода:
Обратите внимание, что невозможно что-либо набратьв текстовое поле, потому что поведение каждой клавиши по умолчанию подавлено.
$(document).ready(function() {
$("body").keydown(function(e) {
e.preventDefault();
if (e.keyCode === 112) {
window.location.href = "../nextpage.aspx";
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
Фиксированная версия:
Я просто перемещаю warnDefault () внутри оператора if, который определяет точную нажатую клавишу.
$(document).ready(function() {
$("body").keydown(function(e) {
if (e.keyCode === 112) {
e.preventDefault();
window.location.href = "../nextpage.aspx";
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text"/>
PS Я также исправил ошибку e
/ event
в вашем выражении if
.