Можно узнать на сайте, включен ли Caps Lock или нет?
Ответ
Учитывая дискуссию в комментариях к вопросу, вот вариант, который определяет включен ли Caps Lock даже если нажата цифра (только в случае если Caps Lock имеет эффект!):
$('#txtTest').on('keydown', function(e) {
$(this).data('_lastKey', e.which);
});
$('#txtTest').on('keypress', function(e) {
var lastKey = +$(this).data('_lastKey');
if(lastKey < 47 || lastKey > 90) return true;
var letter = String.fromCharCode(e.which);
var upper = letter.toUpperCase();
var lower = letter.toLowerCase();
var isNumeric = lastKey >= 48 && lastKey <= 57;
var caps = false;
if(isNumeric)
caps = (lastKey == e.which && e.shiftKey) || (lastKey != e.which && !e.shiftKey);
else if( (letter === upper && !e.shiftKey) || (letter === lower && e.shiftKey) )
caps = !isNumeric;
//alert(caps);
});
Единственный выход это предварительно отлавливать событие keydown и сохранять нажатую клавишу.
Демо: http://jsfiddle.net/xH8vC/10/
Оформил как плагин к jQuery: jquery.capsChecker
Комментариев нет:
Отправить комментарий