Я пытаюсь выполнить проверку в поле пароля формы.Я вызываю функцию onkeypress
, чтобы проверить, включен или выключен capsLock, тогда функция onblur
проверяет значение поля пароля.Но когда я ввожу любое значение в поле пароля, onblur запускается немедленно вместе с onkeypress.Это противоречит моей цели проверки заглавной буквы, а затем значения поля.
HTML:
<input type="password" size=50 name="password" value="" onkeypress="checkCapsLock(event);" onblur="chkPsw(this.value);">
JavaScript:
function chkPsw(inpsw){
var psw = inpsw.toLowerCase(inpsw);
psw = trim(psw);
if (psw.length<4 || psw.length>15){
alert ('password length can be min. 4 and max. 15 chars' );
return false;
}
var p1=/^[a-z0-9_\-\!\@\$\%\&\(\)\{\}\[\]\<\>]+$/;/* a-z 0-9 _ - ! @ $ % & ( ) { } [ ] < > */
if(p1.test(psw)) {
alert("The password:::: "+psw+" :::: is ok.");
return true;
} else {
var p2 = /\s+/;
if (p2.test(psw)){
alert(psw+" is not ok. Space is not allowed.");
return false;
} else{
alert(psw+"\n is not ok only a-z 0-9 _ - ! @ $ % & ( ) { } [ ] < > ");
return false;
}
}
}
function checkCapsLock( e ) {
var myKeyCode=0;
var myShiftKey=false;
var myMsg='Caps Lock is On.\n\nTo prevent entering your password incorrectly,\nyou should press Caps Lock to turn it off.';
// Internet Explorer 4+
if ( document.all ) {
myKeyCode=e.keyCode;
myShiftKey=e.shiftKey;
}
if ( ( myKeyCode >= 65 && myKeyCode <= 90 ) && !myShiftKey ) {
alert( myMsg );
return false;
} else if ( ( myKeyCode >= 97 && myKeyCode <= 122 ) && myShiftKey ) {
alert( myMsg );
return false;
} else {
return true;
}
}
Мне кажется, я дал понять, что все ясно.Если кто-нибудь может мне помочь, это было бы здорово.
То, что я хочу, это когда кто-то начинает вводить в этом поле пароля, статус capsLock проверяется и сообщается пользователю, а затем, когда заполненное поле заполнено и пользователь переходит к следующему полю, значение пароляпроверено.