Este es mi javascript, pero funciona bien con todos los demás campos cuando no se ingresa nada. Estoy tratando de hacer que el usuario deba ingresar al menos 8 caracteres antes de enviar, pero actualmente, pueden enviar en 0.
function validateForm() { if (document.register.firstName.value == "") { alert("Please provide your first name!"); document.register.firstName.focus(); return false; } if (document.register.secondName.value == "") { alert("Please provide your second name!"); document.register.secondName.focus(); return false; } if (document.register.email.value == "") { alert("Please provide your Email!"); document.register.email.focus(); return false; } if (document.register.phoneNo.value == "") { alert("Please provide your Phone Number!"); document.register.phoneNo.focus(); return false; } if (document.register.Gender.value == "") { alert("Must select a Gender!"); document.register.Gender.focus(); return false; } if (document.register.Terms.value == "") { alert("Terms and Conditions must be accpeted"); document.register.Terms.focus(); return false; } if (document.register.psw.value.length > 7) { alert("Password must contain 8 character"); document.register.psw.focus(); return false; } return (true); }Debe verificar si tiene <= 7 caracteres de longitud (o probablemente < 8 para mayor claridad). Actualmente está impidiendo que el usuario envíe una contraseña si es demasiado larga , no al revés:
if (document.register.psw.value.length < 8) { ... }Supongo que está utilizando el campo de entrada de contraseña. Si es así, puede manejar eso desde el HTML haciendo algo como esto (ver más abajo) y hacer que el navegador maneje la validación.
<input type="password" minlength="4" maxlength="8">Simplemente intente lo siguiente. Fíjate, como mencionaste, no es mayor que 7, sino menor que 8.
if( document.register.psw.value.length < 8) { alert( "Password must contain 8 character" ); document.register.psw.focus() ; return false; }