tengo un problema con un script
en realidad soy nuevo en esta asi que
si la pregunta es muy basica les pido disculpas
el problema es el siguiente
el script lo que hace es
validar un formulario,
osea, que no queden campos en vacio
que se ingrese el tipo de dato correcto
y me faltaria el del mail, que todavia lo tengo
que pensar
el problema es esta, el script todo bien, comprueba
todo y me da el mensajito si algo esta mal
pero, suceden 2 errores
aunque haya algun error, despues de mostrarme
el cartelito (por ejemplo "Tiene que escribir su nombre")
luego de darle aceptar, aun asi realiza el submit del form.
eso pasa cuando pongo
el onclic en las etiqueta <form>
el otro error, sucede de la forma contraria,
realiza todas las validaciones, todo bien,
si hay error, muestra el mensajito y no hace
nada, pero si todo esta bien, osea, todos
los datos correcto, no realiza el submit del
formulario
esto sucede cuando pongo el onclic
en la etiqueta el boton submit del formulario
espero que se haya entendido
si alguien me puede decir
como debo poner el javascript
para que solo haga el submit cuanto
el formulario esta bien completado y nada
mas
adjuntos el codigo, sin el evento onclic en ningun
lado, ya que no se donde debo ponerlo
desde ya gracias
Código:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Encuesta de Marcas --->Registracion</title> <?php session_start(); if ($_SESSION['estilo']==2) { echo '<link href="miestilo.css" rel="stylesheet" type="text/css" />';} ?> <script type="text/javascript"> function validarEntero(valor){ //intento convertir a entero. //si era un entero no le afecta, si no lo era lo intenta convertir valor = parseInt(valor) //Compruebo si es un valor numérico if (isNaN(valor)) { //entonces (no es numero) devuelvo el valor cadena vacia return "" }else{ //En caso contrario (Si era un número) devuelvo el valor return valor } } function valida_envia(){ //valido que ningun campo quede vacio if (document.registro.Nombre.value.length==0){ alert("Tiene que escribir su nombre") document.registro.Nombre.focus() return (false); } if (document.registro.Apellido.value.length==0){ alert("Tiene que escribir su apellido") document.registro.Apellido.focus() return (false); } if (document.registro.Nacion.value.length==0){ alert("Tiene que escribir su nacionalidad") document.registro.Nacion.focus() return (false); } if (document.registro.user.value.length==0){ alert("Tiene que escribir su Nombre de usuario") document.registro.user.focus() return (false); } if (document.registro.pass1.value.length==0){ alert("Tiene que escribir un Password") document.registro.pass1.focus() return (false); } if (document.registro.email1.value.length==0){ alert("Tiene que escribir su email") document.registro.email1.focus() return (false); } //valido la edad. tiene que ser entero mayor que 18 edad = document.registro.Edad.value edad = validarEntero(edad) document.registro.Edad.value=edad if (edad==""){ alert("Tiene que introducir un número entero en su edad.") document.registro.Edad.focus() return (false); } //valido que los pass sean iguales if(document.registro.pass1.value!=document.registro.pass2.value){ alert("Los password no cohinciden") return (false); } //valido que los emails sean iguales if(document.registro.email1.value!=document.registro.email2.value){ alert("Los emails no cohinciden") return (false); } } </script> </head> <body> <img src="img/under-construction.gif" width="680" height="492" alt="En construccion"/> <h2>Registracion</h2> <form name="registro" method="post" action="doreg.php"> <fieldset><legend>Datos Personales</legend> <table><tr><td colspan="2">Nombre: <input type="text" name="Nombre" /><br/> Apellido: <input type="text" name="Apellido" /><br/> Edad: <input type="text" name="Edad" /><br/> Nacionalidad: <input type="text" name="Nacion" /> </td></tr></table> </fieldset> <fieldset><legend>Datos Usuario</legend> <table><tr><td>Nombre De Usuario: <input type="text" name="user" /></td></tr> <tr><td>Password: <input type="password" name="pass1" /></td><td>Confirme su Password: <input type="password" name="pass2" /></td></tr> <tr><td>Email: <input type="text" name="email1" /></td><td>Confirme su Email: <input type="text" name="email2" /></td></tr> <tr><td><input type="submit" name="Submit2" value="Registrar"/></td><td class="blimpiar"><input name="" type="reset" value="Limpiar"/> </td></tr></table> <p><a href="index.php">volver atras</a></p> </fieldset> </form> </body> </html>