0

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

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

这是针对 Yii 应用程序的。所以如果它有任何检查大写锁定状态的默认功能,请告诉我。

任何帮助将不胜感激..!

谢谢..!

4

4 回答 4

1

在浏览器中的 JavaScript 中,您要么拥有基于浏览器在标准 API 中提供给您的解决方案,要么没有。

在这种情况下,无法直接访问键盘的状态,因此答案是否定的:当用户按下某个键时,您不能比显示您的消息更好。

于 2013-05-13T06:32:30.520 回答
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");
}
});

演示

于 2013-05-13T06:29:15.597 回答
0

谷歌搜索显示了这一点。我不认为你可以直接检查状态。因此,您只有在输入字母后才能发现。

http://capslock.mclean.ws/

所以回答你的问题:是否可以在 jquery 的点击事件中检测“大写锁定是否开启” - 不!

于 2013-05-13T06:19:52.747 回答
-1

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

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

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

于 2013-05-13T06:22:44.407 回答