我想知道在填写网页表单时是否可以知道大写锁定按钮是否有效?
有时,当您被要求输入密码时,软件会发现您处于活动状态,并且您会小心。
我希望在网络表单中也这样做。
有什么想法吗?
答案 0 :(得分:1)
以下jQuery代码段检测是否在按键时启用大写锁定:
$('#example').keypress(function(e) {
var s = String.fromCharCode( e.which );
if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey ) {
alert('caps is on');
}
});
取自StackOverflow回答:https://stackoverflow.com/a/896515/1113435
答案 1 :(得分:0)
尝试
<html>
<head>
<script type="text/javascript">
function checar_caps_lock(ev) {
var e
= ev || window.event;
codigo_tecla = e.keyCode?e.keyCode:e.which;
tecla_shift = e.shiftKey?e.shiftKey:((codigo_tecla == 16)?true:false);
if(((codigo_tecla >= 65 && codigo_tecla <= 90) && !tecla_shift) || ((codigo_tecla >= 97 && codigo_tecla <= 122) && tecla_shift)) {
document.getElementById('aviso_caps_lock').style.visibility = 'visible';
}
else {
document.getElementById('aviso_caps_lock').style.visibility = 'hidden';
}
}
</script>
</head>
<body>
<form>
<input name="nome_do_campo" type="text" onkeypress="checar_caps_lock(event)" />
<div id="aviso_caps_lock" style="visibility: hidden">CAPS LOCK ATIVADO</div>
</form>
</body>
</html>
答案 2 :(得分:0)
有趣的是,这只适用于按键,而不适用于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);
});
(&#34; a&#34;按下)返回:
keydown: 65
keypress: 97
keyup: 65
注意:尝试使用chrome和firefox
答案 3 :(得分:-1)
访问这样的用户设置将违反任何不错的安全模型,但是您可以检查用户是否已输入ALL_CAPS或aLL_CAPS并进行适当的警告。
在这里可以找到优雅的解决方法:http://24ways.org/2007/capturing-caps-lock
可悲的是,没有办法直接检测Caps Lock是否打开。但是,有一个简单的解决方法;如果用户按下一个键,并且它是一个大写字母,并且他们没有按住Shift键,为什么他们必须打开大写锁定!简单。