Capslock检测赢得';我不能在Javascript中工作

Capslock检测赢得';我不能在Javascript中工作,javascript,devexpress,Javascript,Devexpress,我试图在Javascript中检测capslock,但是下面的代码总是返回false。Firefox和IE网络控制台表示kc和sk未定义事件“e”似乎包含which元素,但是e.which未定义 我做错什么了吗?我正在使用devexpress(这可能是个问题吗?) Javascript <script> function isCapslock(e) { kc = e.keyCode ? e.keyCode : e.which; sk = e.shi

我试图在Javascript中检测capslock,但是下面的代码总是返回false。Firefox和IE网络控制台表示kc和sk未定义<代码>事件“e”似乎包含which元素,但是
e.which
未定义

我做错什么了吗?我正在使用devexpress(这可能是个问题吗?)

Javascript

 <script>
    function isCapslock(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))
          return true;
      else
          return false; 
      }

函数isCapslock(e){
kc=e.keyCode?e.keyCode:e.which;
sk=e.shiftKey?e.shiftKey:((kc==16)?真:假);

如果(((kc>=65&&kc=97&&kce.这在web开发者控制台中是未定义的。我注意到事件对象正在使用以下路径来访问which元素:
event.htmlEvent.which
。一旦我使用了
e.htmlEvent
,它就开始正常工作了。

我认为有点晚了,但请检查这个代码笔:

其主要思想是,自2017年以来,每个浏览器都支持键盘和鼠标环境中的getModifierState。选中此布尔值可显示或隐藏红色警告区域

let input=document.getElementById('password');
input.addEventListener('keyup',checkCapsLock);
input.addEventListener('mousedown',checkCapsLock);
让previousStateOfCapsLock=false;
功能手柄警告(显示){
document.getElementById('capsLockWarning').style.display=show?'block':'none';
}
功能检查CapsLock(事件){
让isCaps=event.getModifierState('CapsLock');
如果(previousStateOfCapsLock&&event.key=='CapsLock'){//现在将其关闭
isCaps=false;
}
previousStateOfCapsLock=isCaps;
手工学习(isCaps);
}
。错误{
显示:无;
颜色:红色;
字体大小:粗体;
}

帽子锁打开了!


showcapswering
在哪里?很抱歉忘记添加它!我编辑了这个问题。尝试反转按键处理程序的参数顺序:
函数(e,s){showcapswering(e);}
事件被正确发送到函数。感谢您的帮助,但我发现了问题所在。
        if (isCapslock(e)) {
            document.getElementById("capsWarningDiv").style.visibility = 'visible';
        }
        else {
            document.getElementById("capsWarningDiv").style.visibility = 'hidden';
        }

    }
</script>
<dx:ASPxTextBox ID="tbPassword" runat="server" ClientInstanceName="tbPassword" Password="True"                                              ToolTip="Please enter your password."
        Width="300px"  
        ClientSideEvents-KeyPress="function(s,e) {showCapsWarning(e); }"
                                                    >