Можно ли проверить, активна ли кнопка блокировки колпачков при вводе формы?

Мне было интересно, можно ли узнать, активна ли кнопка блокировки колпачков при заполнении веб-формы?

Иногда, когда вас просят ввести свой пароль, программное обеспечение уведомляет вас об этом, и вы будете осторожны.

Мне бы хотелось сделать то же самое в веб-формах.

Любые идеи?

Ответы

Ответ 1

Следующий фрагмент jQuery определяет, включена ли блокировка блокировки при нажатии клавиши:

$('#example').keypress(function(e) { 
    var s = String.fromCharCode( e.which );
    if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey ) {
        alert('caps is on');
    }
});

Взято из ответа StackOverflow: fooobar.com/questions/32488/...

Ответ 2

попробуйте

<html>
<head>
<script type="text/javascript">
function checar_caps_lock(ev) {
    var e 

    = ev || window.event;
        codigo_tecla = e.keyCode?e.keyCode:e.which;
        tecla_shift = e.shiftKey?e.shiftKey:((codigo_tecla == 16)?true:false);
        if(((codigo_tecla >= 65 && codigo_tecla <= 90) && !tecla_shift) || ((codigo_tecla >= 97 && codigo_tecla <= 122) && tecla_shift)) {
            document.getElementById('aviso_caps_lock').style.visibility = 'visible';
        }
        else {
            document.getElementById('aviso_caps_lock').style.visibility = 'hidden';
        }
    }
    </script>
    </head>
    <body>
    <form>
    <input name="nome_do_campo" type="text" onkeypress="checar_caps_lock(event)" />
    <div id="aviso_caps_lock" style="visibility: hidden">CAPS LOCK ATIVADO</div>
    </form>

</body>
</html>

Ответ 3

Интересно, что это работает только с keypress, а не с клавиатурой и keydown. Просто чтобы знать, это:

$("#example").keypress(function(e) {
    console.log("keypress: " + e.which);
});
$("#example").keydown(function(e) {
    console.log("keydown: " + e.which);
});
$("#example").keyup(function(e) {
    console.log("keyup: " + e.which);
});

( "a" нажата) возвращает это:

keydown: 65
keypress: 97
keyup: 65 

Примечание: с хром и firefox.

Ответ 4

Доступ к пользовательским настройкам, как это было бы против любой достойной модели безопасности, однако вы можете проверить, ввел ли пользователь ALL_CAPS или aLL_CAPS и предупреждает соответствующим образом.

Элегантный подход можно найти здесь: http://24ways.org/2007/capturing-caps-lock

К сожалению, не существует способа определить, включен ли Caps Lock напрямую. Тем не менее, theres простой обход; если пользователь нажимает клавишу, а ее заглавная буква, и у них нет нажатия клавиши Shift, почему тогда они должны иметь Caps Lock! Простой.