输入密码检测大写是否锁定js实现代码
这个月都还没。必须要凑数。
网站登录为了更好的用户体验都会在输入密码的时候检测是否开启大写。提醒用户。
在下面的 input框里测试下吧!这段代码来之 <点我>。
不过我做了一点小改进。
主要对 已经激活input框的 大写锁定进行实时检测。
代码如下:
<div>
<input class="text" name="passwd" id="loginPasswd" type="password" style="*display:block;" />
<div style="color:#F90;padding:2px; position:absolute; display:none;" id="capital">大写锁定已开启</div>
<script type="text/javascript"><!--
(function(){
var inputPWD = document.getElementById('loginPasswd');
var capital = false;
var capitalTip = {
elem:document.getElementById('capital'),
toggle:function(s){
var sy = this.elem.style;
var d = sy.display;
if(s){
sy.display = s;
}else{
sy.display = d =='none' ? '' : 'none';
}
}
}
var detectCapsLock = function(event){
if(capital){return};
var e = event||window.event;
var keyCode = e.keyCode||e.which; // 按键的keyCode
var isShift = e.shiftKey ||(keyCode == 16 ) || false ; // shift键是否按住
if (
((keyCode >= 65 && keyCode <= 90 ) && !isShift) // Caps Lock 打开,且没有按住shift键
|| ((keyCode >= 97 && keyCode <= 122 ) && isShift)// Caps Lock 打开,且按住shift键
){capitalTip.toggle('block');capital=true}
else{capitalTip.toggle('none');}
}
inputPWD.onkeypress = detectCapsLock;
inputPWD.onkeyup=function(event){
var e = event||window.event;
if(e.keyCode == 20 && capital){
capitalTip.toggle();
return false;
}
}
})()
// --></script>
</div>