为了账号安全,请及时绑定邮箱和手机立即绑定

如何判断CAPS锁是否在使用JavaScript?

如何判断CAPS锁是否在使用JavaScript?

繁星点点滴滴 2019-07-22 15:38:56
如何判断CAPS锁是否在使用JavaScript?如何判断CAPS锁是否在使用JavaScript?不过,有一个警告:我用谷歌搜索了一下,我能找到的最好的解决方案就是附上一个onkeypress事件到每个输入,然后检查每次按下的字母是否大写,如果是,则检查Shift是否也被按住。如果不是,那么盖帽锁就必须开着。这感觉很脏只是.。浪费-肯定还有比这更好的办法吗?
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

发现这个有趣的.。你可以试试.。

function isCapslock(e){

    e = (e) ? e : window.event;

    var charCode = false;
    if (e.which) {
        charCode = e.which;
    } else if (e.keyCode) {
        charCode = e.keyCode;
    }

    var shifton = false;
    if (e.shiftKey) {
        shifton = e.shiftKey;
    } else if (e.modifiers) {
        shifton = !!(e.modifiers & 4);
    }

    if (charCode >= 97 && charCode <= 122 && shifton) {
        return true;
    }

    if (charCode >= 65 && charCode <= 90 && !shifton) {
        return true;
    }

    return false;}

对于国际字符,可以根据需要为下列键添加额外的检查。您必须获得您感兴趣的字符的键代码范围,可能通过使用键映射数组来保存您正在寻址的所有有效用例键.

大写A-Z或“a-Z”、“厄聚”、小写a-Z或0-9或“a-9”、“a-Z”、“u”

上面的键只是示例表示。


查看完整回答
反对 回复 2019-07-22
?
心有法竹

TA贡献1866条经验 获得超5个赞

在jQuery中,

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

避免犯错误,比如后退键,s.toLowerCase() !== s是必要的。


查看完整回答
反对 回复 2019-07-22
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以使用KeyboardEvent以检测许多键,包括大多数最新浏览器上的CAPS锁。

这个getModifierState功能将向国家提供:

  • ALT
  • 挂图
  • 帽锁
  • 控制
  • FN(Android)
  • NumLock
  • 操作系统(Windows&Linux)
  • 卷锁
  • 换档

这个演示适用于包括移动在内的所有主要浏览器(犬科).

passwordField.addEventListener( 'keydown', function( event ) {
  var caps = event.getModifierState && event.getModifierState( 'CapsLock' );
  console.log( caps ); // true when you press the keyboard CapsLock key});


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 371 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信