如何在javascript中检测大写锁定而不比较按下shift时键入的内容?

时间:2011-10-26 13:34:14

标签: javascript usability

有许多解决方案,包括jQuery one(http://plugins.jquery.com/plugin-tags/caps-lock),您可以在其中检查输入的字母是否为大写,如果是,则按下shift键。如果没有,则启用大写锁定。

这不是我想要的。只需转到GMail.com并将光标放在密码字段中即可。一旦按下大写锁定它就会显示出来。你不必输入任何东西。

这就是我要找的。

1 个答案:

答案 0 :(得分:2)

您可以检查按下的键是否是onkeydown事件中的大写锁定键:

element.onkeydown = function () {
    var evt = arguments[0] || window.evt,
        key = evt.which || evt.keyCode;

    if (key == 20) {
        alert("Caps lock pressed");
    }
}

请注意,如果用户在将焦点移动到输入时已经启用了CAP锁定,这将无济于事(我很确定这是不可检测的),这是一个更可行的用例,用于显示警告IMO。< / p>

然而,正如评论中所指出的,如果您在关注密码字段时锁定大写,某些操作系统或浏览器会本身向您显示警告。 GM 7在Win 7上不适合我,所以我认为这不是他们用JavaScript编写的。