我想知道是否可以使用 jquery 检测大写锁定键的状态而无需任何按键。
让我更清楚。我有一个密码字段。当我只是单击它或密码字段处于焦点时,如果大写锁定已打开(类似于 Windows 登录),我需要显示一条警告消息。我知道比较字符代码的方法,但这不是我需要的。
这是针对 Yii 应用程序的。所以如果它有任何检查大写锁定状态的默认功能,请告诉我。
任何帮助将不胜感激..!
谢谢..!
我想知道是否可以使用 jquery 检测大写锁定键的状态而无需任何按键。
让我更清楚。我有一个密码字段。当我只是单击它或密码字段处于焦点时,如果大写锁定已打开(类似于 Windows 登录),我需要显示一条警告消息。我知道比较字符代码的方法,但这不是我需要的。
这是针对 Yii 应用程序的。所以如果它有任何检查大写锁定状态的默认功能,请告诉我。
任何帮助将不胜感激..!
谢谢..!
在浏览器中的 JavaScript 中,您要么拥有基于浏览器在标准 API 中提供给您的解决方案,要么没有。
在这种情况下,无法直接访问键盘的状态,因此答案是否定的:当用户按下某个键时,您不能比显示您的消息更好。
用这个
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");
}
});
谷歌搜索显示了这一点。我不认为你可以直接检查状态。因此,您只有在输入字母后才能发现。
所以回答你的问题:是否可以在 jquery 的点击事件中检测“大写锁定是否开启” - 不!
尝试使用 jquery 插件进行大写锁定http://capslock.mclean.ws/
似乎不可能检测到大写锁定 onfocus 我认为这可能会对您有所帮助,请访问此
http://jaspreetchahal.org/jquery-caps-lock-detection-plugin/