如何在密码字段中检测CAPS LOCK状态

时间:2011-01-26 21:52:19

标签: javascript

  

可能重复:
  How do you tell if caps lock is on using JavaScript?

在网络表单中,有没有办法判断大写锁定是否已开启?

我想我可以检查一下检查onChange,看看是否所有字符都是大写字母。但有更直接的方法吗?

具体来说,我想在他们输入密码字段时实现“你的大写锁定已开启”消息,类似于Windows登录屏幕的方式。

1 个答案:

答案 0 :(得分:3)

你可以在这里找到一个很好的例子:http://www.codeproject.com/KB/scripting/Detect_Caps_Lock.aspx

您可以使用该代码并将其包装到另一种类型的事件中,即onfocus或文档加载。

您可以谷歌搜索关键代码的索引(我发布了一个链接,但我没有足够的业力来发布多个链接,抱歉)。

为简单起见,您要查找的代码是20(大写锁定)。


从网站复制的说明(许可证:CPOL

构建脚本

<script language="Javascript">
function capLock(e){
 kc = e.keyCode?e.keyCode:e.which;
 sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false);
 if(((kc >= 65 && kc <= 90) && !sk)||((kc >= 97 && kc <= 122) && sk))
  document.getElementById('divMayus').style.visibility = 'visible';
 else
  document.getElementById('divMayus').style.visibility = 'hidden';
}
</script>

现在我们准备好了脚本。我们现在需要将此脚本与我们的表单相关联。

使用脚本

让我们添加两个项目:文本框和DIV。现在我们只需要调用onKeyPress事件。

<input type="password" name="txtPassword" onkeypress="capLock(event)" />
<div id="divMayus" style="visibility:hidden">Caps Lock is on.</div>