Capslock检测赢得';我不能在Javascript中工作
我试图在Javascript中检测capslock,但是下面的代码总是返回false。Firefox和IE网络控制台表示kc和sk未定义<代码>事件“e”似乎包含which元素,但是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
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); }"
>