Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2006, 21:38
mlegui21
 
Fecha de Ingreso: agosto-2006
Mensajes: 22
Antigüedad: 18 años, 7 meses
Puntos: 0
[AYUDA]Validar form, problema con el submit

hola gente
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>