Cuando trato de validar los campos mediante javascript no entra en la función, ¿Qué puedo hacer?
Hola buenos días, tengo un formulario sencillo donde quiero validar los campos del nombre y el apellido medianta javascript El problema es que al momento de validarlo, no entra en la función El código es el siguiente... <html> <head> </head> <body> <script type="text/javascript"> function validarform(form) { if (form.nombre.value.lenght==0) {
form.nombre.focus(); alert('no se ha escrito tu nombre'); return false; } if(form.apellido.value.lenght==0) { form.apellido.focus(); alert('no se ha escrito el apellido'); return false; } return true; } </script> <form action="index.php" method="post" name="form" onsubmit="return validarform(this);"> Nombre: <input type="text" name="nombre"><br/> Apellido: <input type="text" name="apellido"><br/> <input type="submit" name="bt_enviar" value="enviar"> </form> </body> </html> Espero que me puedas decir cual es el problema, ya al que le he preguntado no supo contestarme... Un saludo Diego...
1 Respuesta
Respuesta de amigonet
1
1
amigonet, Técnico en Sistemas y me encanta cacharrear con los computadores...
Bueno pues con Java no es que sepa mucho pero encontré esto que creo te sirve: <script language="javascript" type="text?javascript"> function validacion(formulario) { var er_nombre = ?^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$? ??letras, '.' y '-' o vacio var er_telefono = ?^([0-9\s\+\-])+$? ??numeros, espacios, + o - ??fechas, formato dd?mm?aaaa o d?m?aa var er_mes31dias = ?^([1-3]0|[0-2][1-9]|31|[0-9])\?(1|01|3|03|5|05|7|07|8|08|10|12)\?(1999|20[0-1][0-9]|2020)$? var er_mes30dias = ?^([1-3]0|[0-2][1-9]|[0-9])\?(4|04|6|06|9|09|11)\?(1999|20[0-1][0-9]|2020)$? var er_mes28dias = ?^([1-2]0|[0-2][1-8]|[0-1]9|[0-9])\?(02|2)\?(1999|200[1-3]|200[5-7]|2009|201[0-1]|201[3-5]|201[7-9])$? var er_mes29dias = ?^([1-2]0|[0-2][1-9]|[0-9])\?(02|2)\?(2000|2004|2008|2012|2016|2020)$? ??direccion de correo electronico var er_email = ?^(.+\@.+\..+)$? var x ??comprueba 50 caracteres maximo for(x = 1; x < 5; x++) { if (formulario.elements[x].value.length > 50) { alert('La lontitud máxima permitida para cualquier campo es de 10 caracteres.') return false } } ??comprueba campo de nombre if(!er_nombre.test(formulario.nombre.value)) { alert('Contenido del campo NOMBRE no válido.') return false } ??comprueba campos de telefonos (permite campos vacios y guiones) if( !er_telefono.test(formulario.telefono.value) ) { alert('Contenido del campo TELEFONO no válido.') return false } ? Comprueba la fecha según calendario (hasta el 2020, ojo) if (! (er_mes31dias. Test(formulario. Fecha. value) || er_mes30dias.test(formulario.fecha.value) || er_mes29dias.test(formulario.fecha.value) || er_mes28dias.test(formulario.fecha.value))) { alert('Contenido del campo FECHA no válido.') return false } ??comprueba campo de email if(!er_email.test(formulario.email.value)) { alert('Contenido del campo E-MAIL no válido.') return false } alert('Los campos introducidos son CORRECTOS.') return false ??cambiar por return true para ejecutar la accion del formulario } <?script> <form onsubmit="return validacion(this)" name="FormValidacion"> <small>Nombre:<?small><br> <input type="text" name="nombre" size="14"><br><br> <small>Teléfono:<?small><br> <input type="text" name="telefono" size="14"><br><br> <small>Fecha (dd?mm?aaaa):<?small><br> <input type="text" name="fecha" size="14"><br><br> <small>E-mail:<?small><br> <input type="text" name="email" size="14"><br><br> <input type="submit" value="Validar" name="boton_envio"> <input type="reset" value="Borrar" name="boton_borrar"><?form> //////////////////////////////////////////////////////////////////////////////////////// Ahora en Php que si le entiendo: Te explico: Lo que tu haces es crear el formulario: <form id="form1" name="form1" method="post" action="Untitled-2.php"> <div align="center"> <table border="0"> <tr> <td> <div align="center"><strong>Nombre *:</strong></div> </td> <td><input name="txt_nombre" type="text" id="txt_nombre" size="50" /></td> </tr> <tr> <td> <div align="center"><strong>Apellido *:</strong></div> </td> <td><input name="txt_apellido" type="text" id="txt_apellido" size="50" /></td> </tr> </table> </div> <p align="center"> <label> <input type="submit" name="Submit" value="Enviar" /> </label> </p> </form> Ese formulario puede ir en "formulario.php" luego crea un archivo con nombre "Untitled-2.php" y pegas lo siguiente: <form id="form1" name="form1" method="post" action="Untitled-2.php"> <div align="center"> <table border="0"> <tr> <td> <div align="center"><strong>Nombre *:</strong></div> </td> <td><input name="txt_nombre" type="text" id="txt_nombre" size="50" /></td> </tr> <tr> <td> <div align="center"><strong>Apellido *:</strong></div> </td> <td><input name="txt_apellido" type="text" id="txt_apellido" size="50" /></td> </tr> </table> </div> <p align="center"> <label> <input type="submit" name="Submit" value="Enviar" /> </label> </p> </form> <p> <?Php //Tomo los datos de los campos de texto $status="Se ha generado un error, por favor contacte con el administrador."; $img="img/error.jpg"; $nombre=$_POST['txt_nombre']; $apellido=$_POST['txt_apellido']; if (($nombre == "") ||($apellido == "")){ $status="Te recuerdo que los compos con * son obligatorios"; $img="img/error.jpg"; } else { $status ="Los campos quedaron llenos"; $img="img/ok.jpg"; } echo ' <br><br> <center> <table> <tr> <td> <fieldset> <legend>Status</legend> <table width="200" border="0" align="center"> <tr> <td> <div align="center"><strong>'.$status.'</strong></div> </td> </tr> <tr> <td> <div align="center"><img src="'.$img.'" /></div> </td> </tr> </table> </fieldset> </td> </tr> </table> </center> '; ?> // Aquí lo que se hace es una pequeña validación de los dos campos // Si están vacíos el estatus es que los llene pero si no, el estatus es ok o lo puedo camniar por cualquier proceso como por ejemplo agregarlo a mi base de datos.. Y listo amigo. Cualquier cosa me comentas.