是否有可能在jquery中的click事件中检测'capslock是否打开'?

时间:2013-05-13 06:17:05

标签: javascript jquery yii verification capslock

我想知道是否可以使用jquery并且无需按任何键来检测大写锁定键的状态。

让我更清楚一点。我有一个密码字段。当我只是单击它或密码字段处于焦点时,如果大写锁定打开,我需要显示警告消息(类似于Windows登录)。我知道比较字符代码的方法,但这不是我需要的。

这适用于Yii应用程序。因此,如果它有任何默认功能来检查大写锁定状态,请告诉我。

任何帮助都将受到高度赞赏..!

谢谢..!

4 个答案:

答案 0 :(得分:1)

在浏览器的JavaScript中,您可以根据浏览器在标准API中提供的内容提供解决方案,也可以不使用。

在这种情况下,没有直接访问键盘的状态,所以答案是:当用户按一下键时,你做的不如显示你的消息。

答案 1 :(得分:0)

谷歌搜索显示了这一点。我不是你可以直接检查状态的东西。 因此,只有在输入一封信后才会发现。

http://capslock.mclean.ws/

所以回答你的问题:是否有可能在jquery中的点击事件中检测'capslock是否已打开' - 不!

答案 2 :(得分:0)

使用此

document.onkeydown = function (e) { //check if capslock key was pressed in the whole window
    e = e || event;
    if (typeof (window.lastpress) === 'undefined') {
        window.lastpress = e.timeStamp-51; 
     }

        if (e.keyCode == 20 && e.timeStamp > window.lastpress + 50) {
            if (typeof (window.capsLockEnabled) !== 'undefined') {
                window.capsLockEnabled = !window.capsLockEnabled;
            }
            if(!$(document).data("capsOn")){
              $(document).data("capsOn", true);
            }else{
              $(document).data("capsOn", false);
            }
        }
        window.lastpress = e.timeStamp;
        //sometimes this function is called twice when pressing capslock once, so I use the timeStamp to fix the problem


};

然后是代码

$("#password").click(function(){
if($(document).data("capsOn")){
 alert("CAPS ON");
}
});

DEMO

答案 3 :(得分:-1)

尝试使用jquery插件进行大写锁定http://capslock.mclean.ws/

似乎无法检测大写锁定onfocus我认为这可能对您有所帮助,请访问此

http://jaspreetchahal.org/jquery-caps-lock-detection-plugin/