1) que si el campo 'email' está vacío o contiene caracteres extraños o no tiene la arroba, etc... salga el mensaje 'Campo email obligatorio. Asegúrese que el email es válido', pero no mediante alert, sino en la misma pantalla, debajo del campo.
2) que si el campo 'password' está vacío o tiene menos de 5 caracteres, salga el mensaje 'Campo password obligatorio. Debe tener al menos 5 caracteres'.
3) que si cualquiera de los dos campos (o los dos a la vez) están vacíos, o si el password tiene menos de 5 caracteres o si el email contiene caracteres extraños o no tiene la arroba, el botón enviar aparezca deshabilitado.
bien. el tema está en que el punto 1) y el punto 2) lo tengo conseguido (gracias eso sí a vuestra inestimable ayuda). pero lo que no logro es lo siguiente:
a) del punto 2, obligar a que el campo password tenga al menos 5 caracteres.
b) del punto 3, deshabilitar el botón si no se cumple lo de los 5 caracteres en el password o no introduce un email válido, pues ahora mismo únicamente lo consigo deshabilitar sólo si uno de los campos (o los dos a la vez) están vacíos.
el código que utilizo para todo esto es el siguiente:
FUNCIONES
Código HTML:
<script language="JavaScript"> ///valida campos no vacíos function valida(c) { var i,v; if(c) { i=c.name+"obl"; (c.value.length<5)?v="visible":v="hidden"; document.getElementById(i).style.visibility=v; } } ///deshabilita botón enviar si campos vacíos function deshabilita(form) { if ((clientes.email.value != "") && (clientes.password.value != "")) { clientes.B1.disabled = false; } else { clientes.B1.disabled = true; } } </script>
Código HTML:
<form method="post" action="procesar.php" name="clientes"> <tr> <td> email:</td> <td> <input type="text" name="email" onKeyUp="deshabilita(this.form);" onblur="document.getElementById('emailobl').style.visibility =(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(this.value)) ? 'hidden' : 'visible';"></td> </tr> <tr> <td id="emailobl" style="visibility:hidden;"><b>Campo email obligatorio. Asegúrese que el email es válido</b></td> </tr> <tr> <td> password:</td> <td> <input type="password" name="password" onKeyUp="deshabilita(this.form);" onBlur="valida(this);"></td> </tr> <tr> <td id="passwordobl" style="visibility:hidden;"><b>Campo password obligatorio. Debe tener al menos 5 caracteres</b></td> </tr> <tr> <td colspan="2"> <input type="submit" valueenviar" name="B1" disabled></td></tr>