如何在不使用JS按任何键的情况下检测CAPS LOCK STATUS是否处于活动状态?

时间:2016-10-19 16:23:33

标签: javascript capslock

我想使用输入元素中的焦点事件检测大写锁定是否处于活动状态但没有任何按键,例如具有IE输入密码类型的行为。 对于IE,当您专注于此类输入密码时,如果用户具有活动大写锁定,则会出现警告工具提示,即使用户没有按下任何键,我想用JS做什么。 现在我的代码只是使用了按键事件

 $(function() {//check caps lock on 
                var isIE = !isIE && !!window.StyleMedia;
                if (isIE == true) {
                    document.msCapsLockWarningOff = true;
                }            
                    $('#Password').keypress(function (key) {
                        if (key.charCode >= 65 && key.charCode <= 90)
                            $('#capLockOn').tooltip('show');
                        else {
                            $('#capLockOn').tooltip('hide');
                        }
                        //Hide the tooltip when moving away from the password field
                        $('#Password').blur(function (e) {
                            $('#capLockOn').tooltip('hide');
                        });
                    });

            }); 

我想在没有任何浏览器原生警告的情况下添加警告,以保持一致的设计 任何建议请...

1 个答案:

答案 0 :(得分:1)

您可以使用KeyboardEvent.getModifierState('CapsLock');。这将返回修饰键的当前状态(MDN Docs)。

$('#inputBox').addEventListener('focus', function(e) {
  e.getModifierState('CapsLock');
});

当用户专注于您想要的任何内容时,这将为您提供Caps Lock修改器的当前状态。