Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/10/2012, 03:52
agami
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 12 años, 3 meses
Puntos: 2
Respuesta: Validación completa de formulario Javascript

Muchas gracias a ambos compañeros!

He tocado un poquito ya le código y me controla un poco todo, lo único que me falla es la validación de la repetición de la password y que al hacer submit da igual que me salte cualquier error me ejecuta el action del form.

Creo que seria con la variable valorRetorno, preguntar y si es false no hacer submit y si no lo es hacerlo no? pero tendría que ser con button como decía juanito no?

Les dejo el código:

Código HTML:
<!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=UTF-8" />
<title>Tomate Algo</title>
<script>
 function validarForm (form) {
					var valorRetorno = true;
					var nombreUsuario = document.forms.registro.usunom.value;
					var password = document.forms.registro.usupass.value;
					var password2 = document.forms.registro.usurepass.value;
					var email = document.getElementById('email').value;
					var email2 = document.getElementById('email2').value;
					var formato = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

					//Comprobamos si nombreUsuario tiene más de 6 caracteres
					if (nombreUsuario.length < 6) {
					nombreUsuario = nombreUsuario.replace(/(<([^>]+)>)/ig,""); // quitás posible código html
					nombreUsuario = nombreUsuario.replace(/^\s+/g,'').replace(/\s+$/g,'');// limpias espacios en blanco al inicio y final del nombre
						valorRetorno = false;
						alert ("Tu nombre de usuario tiene que tener al menos \n6 caracteres.\n Por favor, inténtelo de nuevo.");
						document.forms.usunombre.value.focus();
					}	
					
					//Comprobamos los emails
					var v_email = formato.test(email);
 
					if((v_email != true)||(email == "")){
						alert('Email no válido');
						valorRetorno = false;
						document.forms.registro.email.value = "";
						document.forms.registro.email2.value ="";
						document.forms.registro.email.value.focus();
					}
 
					var v_email2 = formato.test(email2);
 
					if((v_email2 != true)||(email2 == "")){
						alert('Email2 no válido');
						valorRetorno = false;
						document.forms.registro.email2.value ="";
						document.forms.registro.email2.value.focus();
					}
					
					//Comprobamos que la password tiene más de 6 caracteres
					if (password.length < 6) {
						valorRetorno = false;
						alert("La contraseña tiene que tener al menos \n6 caracteres.\n Por favor, inténtelo de nuevo.");
						document.forms.registro.usupass.value = "";
						document.forms.registro.usurepass.value = "";
						document.forms.registro.usupass.value.focus();
					}	

					//Comprobamos que las dos password son iguales
					if (password.value != password2.value) {
						valorRetorno = false;
						alert("Las contraseñas no son iguales.\n Por favor, inténtelo de nuevo.");
					document.forms.registro.usupass.value = "";
						document.forms.registro.usurepass.value = "";
						document.forms.registro.usupass.value.focus();
					}
					
					//Comprobamos cuántos elementos tiene el formulario y son requeridos
					var elementosForm = form.elements;
					for (var i=0; i<elementosForm.length; i++){
						elementoActual = elementosForm [i];
						if (elementActual.value=="" && elementoActual.className=="requerido") {
							alert("El campo requerido \""+elementoActual.name +"\" está vacío. Por favor, proporcione un valor.");
							elementoActual.focus();
							valorRetorno = false;
							break;
						}
						return valorRetorno;
					}
					}
</script> 
<script type="text/javascript" src="cargarfechas.js" ></script>
</head>

<body onloadstart="cargarFecha()">
<form method="post" name="registro" action="validacionreg.php" onsubmit="return validarForm(this)">
Nombre: <input type="text" name="usunom" id="usunom" value="<?php echo $rnombre; ?>"/>
</br>
Apellidos: <input type="text" name="usuapel" id="usuapel" value="<?php echo $rapellido; ?>"/>
</br>
Fecha de nacimiento:
<select id="anhoNac" onchange="ponerDias()">
 <script>ponerAnho();</script>
</select>
<select id="mesNac" onchange="ponerDias()">
 <script>ponerMes();</script></select>
<select id="diaNac">
 <script>ponerDias();</script>
</select>
</br>
Email:<input type="text" value="" id="email" name="email" value="<?php echo $remail; ?>"/><br />
Email 2:<input type="text" value="" id="email2" name="email2" /><br />

Contraseña: <input  type="password" name="usupass" id="usupass"/>
</br>
Repita contraseña: <input type="password" name="usurepass" id="usurepass"/>
</br>
<!--<p align="center"><img src="chequeo.php" width="300" height="30" border="1" /></p>-->
     </br>
     <input type="submit" name="Registrate!" value="Registrate!">     
</form>
</body>
</html> 
Muchas gracias por su tiempo :)
__________________
Bienvenidos a una nueva era.