Estoy haciendo un formulario y hay un punto con el que llevo ya horas y no consigo encontrar la solución, por eso escribo, a ver si alguien puede ayudarme.
Cuando alguien ponga datos en el campo Nombre, pueden salir dos errores:
- La longitud del nombre es mayor de cinco caracteres.
- El nombre no contiene números.
El problema es que solo me aparece el error de La longitud del nombre es mayor de cinco caracteres.
Si en el campo nombre pongo por ejemplo: 21, me lo da como correcto, en cambio si pongo 21212, me sale el siguiente mensaje: El nombre no contiene números. Yo lo que quiero es que me salga ese error aunque solo se ponga un número.
No sé si me explico. Aquí dejo el código entero.
Código Javascript:
Ver original
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Validar formulario</title> <script type="text/javascript"> function validar() { if (document.formulario.nombre.value.length==0) { alert("No ha introducido nombre."); document.formulario.nombre.focus(); return; } if (document.formulario.nombre.value.length<5) { alert("La longitud del nombre es mayor de cinco caracteres."); document.formulario.nombre.focus(); return; } Nombre=document.formulario.nombre.value; if (Nombre.length==0 || !isNaN(Nombre)) { alert("El nombre no contiene números."); document.formulario.nombre.focus(); return; } Edad=document.formulario.edad.value; if ( Edad.length==0 || isNaN(Edad)) { alert("La edad solo contiene números"); document.formulario.edad.focus(); return; } Edad=document.formulario.edad.value; if (Edad<18 || Edad>99) { alert("El valor de la edad está comprendido entre los valores 18 y 99."); document.formulario.edad.focus(); return; } correo=document.formulario.email; if (correo.value.length==0 || correo.value.indexOf('@') == -1) { alert("La dirección de correo incluye una arroba y su longitud es superior a siete caracteres"); document.formulario.email.focus(); return; } cpostal=document.formulario.cp.value; if (isNaN(cpostal) || (cpostal.length>5) || (cpostal.length<5)) { alert("El código postal tiene 5 dígitos"); document.formulario.cp.focus(); return; } Telefono=document.formulario.teléfono.value; if (isNaN(Telefono) || (Telefono.length>9) || (Telefono.length<9)) { alert("El teléfono son 9 digitos"); document.formulario.telefono.focus(); return; } if (document.formulario.nif.value.length==0) { alert("Escriba su DNI"); document.formulario.nif.focus(); return; } if (document.formulario.nif.value.length<8) { alert("El DNI son 8 dígitos númericos y una letra"); document.formulario.nif.focus(); return; } { abc=document.formulario.nif.value dni=abc.substring(0,abc.length-1) let=abc.charAt(abc.length-1) if (!isNaN(let)) { alert('Falta la letra') document.formulario.nif.focus() return; } else { cadena="TRWAGMYFPDXBNJZSQVHLCKET" posicion = dni % 23 letra = cadena.substring(posicion,posicion+1) if (letra!=let.toUpperCase()) { alert("Nif no válido, introduce un dni correcto") document.formulario.nif.focus() return; } } } } </script> </head> <body> <h2><font color="#054BBB">Introduzca sus datos personales:</font></h2> <form name="formulario"> <table border="0" width="350" cellspacing="3"> <tr> <td width="50%" bgcolor="#FFF3D6" align="right">Nombre</td> <td width="50%" bgcolor="#FFDC88"> <input type="text" name="nombre" size="20"></td> </tr> <tr> <td width="50%" bgcolor="#FFF3D6" align="right">Edad (18-99)</td> <td width="50%" bgcolor="#FFDC88"> <input type="text" name="edad" size="2" maxlength="2"></td> </tr> <tr> <td width="50%" bgcolor="#FFF3D6" align="right">Dirección de correo</td> <td width="50%" bgcolor="#FFDC88"> <input type="text" name="email" size="20"></td> </tr> <tr> <td width="50%" bgcolor="#FFF3D6" align="right">Código postal</td> <td width="50%" bgcolor="#FFDC88"> <input type="text" name="cp" size="5"></td> </tr> <tr> <td width="50%" bgcolor="#FFF3D6" align="right">Teléfono</td> <td width="50%" bgcolor="#FFDC88"> <input type="text" name="teléfono" size="9" maxlength="9"></td> </tr> <tr> <td width="50%" bgcolor="#FFF3D6" align="right">DNI</td> <td width="50%" bgcolor="#FFDC88"> <input type="text" name="nif" size="9"></td> </tr> </table> <p><input type="Button" value="Validar datos" name="enviar" onclick="validar()"></p> </form> </body> </html>