Javascript 在表单中键入时,是否可以检查大写锁定按钮是否处于活动状态?

Javascript 在表单中键入时,是否可以检查大写锁定按钮是否处于活动状态?,javascript,Javascript,我想知道填写web表单时是否可以知道caps lock按钮是否处于活动状态 有时,当你被要求输入密码时,软件会注意到你处于活动状态,你要小心 我希望在web表单中也能这样做 有什么想法吗?这样访问用户设置会违反任何适当的安全模型,但是您可以检查用户是否输入了所有上限或所有上限,并发出相应的警告 在这里可以找到优雅的工作环境: 遗憾的是,无法直接检测Caps Lock是否开启。然而,有一个简单的解决办法;如果用户按了一个键,而键是大写字母,并且他们没有按下Shift键,那么为什么他们一定要锁定大写

我想知道填写web表单时是否可以知道caps lock按钮是否处于活动状态

有时,当你被要求输入密码时,软件会注意到你处于活动状态,你要小心

我希望在web表单中也能这样做


有什么想法吗?

这样访问用户设置会违反任何适当的安全模型,但是您可以检查用户是否输入了所有上限或所有上限,并发出相应的警告

在这里可以找到优雅的工作环境:

遗憾的是,无法直接检测Caps Lock是否开启。然而,有一个简单的解决办法;如果用户按了一个键,而键是大写字母,并且他们没有按下Shift键,那么为什么他们一定要锁定大写字母呢!简单

试一试


功能车盖锁(ev){
变量e
=ev | | window.event;
codigo_tecla=e.keyCode?e.keyCode:e.which;
tecla_shift=e.shiftKey?e.shiftKey:((codigo_tecla==16)?真:假);

如果(((codigo_-tecla>=65&&codigo_-tecla=97&&codigo_-tecla),以下jQuery代码段会检测按键时是否启用了caps lock:

$('#example').keypress(function(e) { 
    var s = String.fromCharCode( e.which );
    if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey ) {
        alert('caps is on');
    }
});

摘自StackOverflow回答:

有趣的是,这只适用于按键,而不适用于keyup和keydown。只需知道:

$("#example").keypress(function(e) {
    console.log("keypress: " + e.which);
});
$("#example").keydown(function(e) {
    console.log("keydown: " + e.which);
});
$("#example").keyup(function(e) {
    console.log("keyup: " + e.which);
});
(“a”按下)返回以下内容:

keydown: 65
keypress: 97
keyup: 65 

注意:在chrome和firefox上尝试过

我肯定认为这样解析用户输入是个坏主意!我的密码可能是FOOBAR,我不想被注意到!它不应该禁用用户的输入,但只要注意他,那就是caps lock处于活动状态。是的,检测shift键而不是caps lock-简单而聪明!这似乎是一个错误非常可靠的解决方案。jsFiddle here:请注意,此解决方案仅适用于按键,但在使用keydown或keyup时,然后使用String。fromCharCode()始终返回大写字母。可能重复的
keydown: 65
keypress: 97
keyup: 65