Как узнать, является ли .keyup () символьным ключом (jQuery)

Как узнать, является ли ключ .keyup () символьным (jQuery)

Примечание: задним числом это был быстрый и грязный ответ, который может работать не во всех ситуациях. Чтобы получить надежное решение, см . Ответ Тима Дауна (скопируйте его здесь, так как этот ответ все еще получает мнения и отзывы):

Вы не можете сделать это надежно с событием keyup. Если вы хотите узнать что-то о набранном символе, вы должны использовать вместо этого событие нажатия клавиши.

Следующий пример будет работать все время в большинстве браузеров, но есть некоторые крайние случаи, о которых вы должны знать. То, что, на мой взгляд, является исчерпывающим руководством по этому вопросу, см. Http://unixpapa.com/js/key.html .

 $("input").keypress(function(e) { if (e.which !== 0) { alert("Character was typed. It was: "   String.fromCharCode(e.which)); } }); 

keyup и keydown дают вам информацию о физической клавише, которая была нажата. На стандартных клавиатурах США / Великобритании в их стандартных раскладках похоже, что существует корреляция между свойством keyCode этих событий и символом, который они представляют. Однако это ненадежно: разные раскладки клавиатуры будут иметь разные сопоставления.


Ниже был оригинальный ответ, но он не является правильным и может работать не надежно во всех ситуациях.

Чтобы сопоставить код клавиши с символом слова (например, a будет соответствовать. space не будет)

 $("input").keyup(function(event) { var c= String.fromCharCode(event.keyCode); var isWordcharacter = c.match(/w/); }); 

Хорошо, это был быстрый ответ. Подход тот же, но остерегайтесь проблем с кодом ключа, см. Эту статью в режиме quirksmode.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector