2013-11-14 2 views
1

Как ограничить событие keydown только вступлением в силу при нажатии символа? Я бы хотел пропустить код, если на клавиатуре нажат несимвольный символ, например. кнопка дома, кнопка конца.Ограничить событие keydown только для символов

Я знаю, что могу направить эти кнопки на e.which == someNumber, но есть ли лучший способ сделать это? Написание условия для каждой несимвольной кнопки не кажется хорошей идеей.

Спасибо!

+2

Для английских символов только или символы? Поддержка Unicode? Пожалуйста, дополните. – VisioN

+0

@VisioN любой персонаж, если он отображается в текстовом поле или что-то в этом роде. – dork

+0

Я бы поместил все «авторизованные» коды клавиш в массив javascript, а затем на тест проверки ключа, если e.which находится в этом массиве. Чтобы просмотреть массив, вы можете обратиться к [этой записи] (http://stackoverflow.com/questions/143847/best-way-to-find-an-item-in-a-javascript-array) –

ответ

0

Вы должны реализовать определенную форму проверки диапазона. Выберите диапазон, который занимает наименьшее количество кодирования. Что бы вы охарактеризовали как персонаж? Будет ли все между 32 и 125? Посмотрите интересующий вас диапазон на ascii table.

+0

Думаю? Поэтому я мог бы просто написать e.which> 31 && e.which <126? но это не одно и то же, верно? Я имею в виду e.which == 37 to 40 - клавиши со стрелками – dork

+0

Этот диапазон был всего лишь примером. Где вы видите от 37 до 40 клавиш со стрелками? – theoutlander

+0

Я только что сделал console.log (e.which) и от 37 до 40 - это то, что появляется при нажатии стрелок. – dork

1

попробовать это

$(function() { 
$(document).on('keydown', function (event) { 
    if (event.keyCode == yourkeycode) { 
     //stuff 
    } 
}); 
}); 
+0

Как это решение его проблемы, если ему нужно еще проверить отдельные коды клавиш? Запускает ли keydown в jquery не запускать символы без ascii? – theoutlander

Смежные вопросы