Foros del Web » Programando para Internet » Javascript »

corrección validación

Estas en el tema de corrección validación en el foro de Javascript en Foros del Web. bien tengo un pequeño problema con este código.. cuando lo ejecuto todo está ok. peró por ejemplo si tengo más de un campo erroneo y ...
  #1 (permalink)  
Antiguo 17/05/2011, 21:08
 
Fecha de Ingreso: diciembre-2010
Mensajes: 166
Antigüedad: 13 años, 4 meses
Puntos: 0
corrección validación

bien tengo un pequeño problema con este código.. cuando lo ejecuto todo está ok. peró por ejemplo si tengo más de un campo erroneo y sólo "corrijo" un campo.. y dejo el otro erroneo y le vuelvo a dar al submit no me desaparecen los errores.. sólo lo hacen si dejo todo el formulario sin errores .. porqué pasa esto?

Código HTML:
<html>
	<head>
	<link rel="stylesheet" href="formu.css" type="text/css">
	<title>
		Fórmulario - Datos personales
	</title>
	<script language="javascript">
	<!--
	function valida()
		{
		errores=0;
		if(!(document.registro.nombre.value.length>=4)&&(document.registro.nombre.value.length<=8))
				{
				if(document.registro.nombre.value.length=="0")
					{
					document.getElementById("nombre").style.borderColor="red";
					document.getElementById("er_name").innerHTML = (" &nbsp&nbsp Este campo no puede estar vacio.");
					errores++;
										}
					else {
						document.getElementById("nombre").style.borderColor="red";
						document.getElementById("er_name").innerHTML = (" &nbsp&nbsp Este campo a de tener entre 4 y 8 caracteres");
						errores++;

						}
				}

				if(document.registro.apellidos.value.length=="0")
				{
					document.getElementById("apellidos").style.borderColor="red";
					document.getElementById("er_ape").innerHTML = (" &nbsp&nbsp Este campo no puede estar vacio");
					errores++;
				}
		if(errores!="0")
			{
			return false;
			}

			else
				return true;


		}
	//-->>
	</script>

	</head>
<body>
<h2>Datos nuevo usuario</h2>
<br>
<form name="registro" method="post" onSubmit="return valida()">
<Fieldset style="margin:auto;">
	<legend>Registro nuevo usuario</legend>

						<label for="nombre">Nombre: </label><input type="text" id="nombre" name="nombre"> <span id="er_name" style="color: red;font-weight:bold;"></span><br>
						<label for="apellidos">Apellidos: </label><input type="text" id="apellidos" name="apellidos"><span id="er_ape" style="color: red;font-weight:bold;"></span><br>
						<label for="edad">Fecha Nacimiento: </label><br>
						<label for="mail">E-Mail: </label><input type="text" id="mail" name="mail"><br>
						<label for="username">Nombre Usuario: </label><input type="text" id="username" name="username"><br>
						<label for="password">Contraseña: </label><input type="password" id="password" name="password"><br>
						<input type="submit" value="enviar">

</fieldset>
</form> 
  #2 (permalink)  
Antiguo 17/05/2011, 21:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años
Puntos: 0
Respuesta: corrección validación

Hola

mira, no se si sera el punto, pero mirando tu codigo las validaciones del nombre son lo que te dan problema, en este momento yo te recomendaria que las validaciones las hicieras paso a paso, no agrupandolas.. por ejemplo:

Cita:
if(document.registro.nombre.value.length=="0") {
document.getElementById("nombre").style.borderColo r="red";
document.getElementById("er_name").innerHTML = (" &nbsp&nbsp Este campo no puede estar vacio.");
return false;
}
cosa que al final de las validaciones de tus 5 campos pongas por ejemplo:

Cita:
if(document.registro.nombre.value.length=="0") {
document.getElementById("nombre").style.borderColo r="red";
document.getElementById("er_name").innerHTML = (" &nbsp&nbsp Este campo no puede estar vacio.");
return false;
}
return true;
y me di cuenta que en el form te olvidaste de

Cita:
<form name="registro" method="post" onSubmit="return valida(this)">
espero que te halla servido de algo


-------------------------

mira, lo modifique un poco y lo deje asi

Cita:
<html>
<head>
<link rel="stylesheet" href="formu.css" type="text/css">
<title>
Fórmulario - Datos personales
</title>
<script language="javascript">
<!--
function valida(){
if((registro.nombre.value.length<=4)||(registro.no mbre.value.length>=8)) {
document.getElementById("nombre").style.borderColo r="red";
document.getElementById("er_name").innerHTML = (" &nbsp&nbsp Este campo a de tener entre 4 y 8 caracteres.");
return false;
}
if(document.registro.nombre.value.length=="0") {
document.getElementById("nombre").style.borderColo r="red";
document.getElementById("er_name").innerHTML = (" &nbsp&nbsp Este campo no puede estar vacio.");
return false;
}
if(document.registro.apellidos.value.length=="0"){
document.getElementById("apellidos").style.borderC olor="red";
document.getElementById("er_ape").innerHTML = (" &nbsp&nbsp Este campo no puede estar vacio");
return false;
}
return true;
}
//-->>
</script>

</head>
<body>
<h2>Datos nuevo usuario</h2>
<br>
<form name="registro" method="post" onSubmit="return valida(this)">
<fieldset style="margin:auto;">
<legend>Registro nuevo usuario</legend>
<label for="nombre">Nombre: </label><input type="text" id="nombre" name="nombre"> <span id="er_name" style="color: red;font-weight:bold;"></span><br>
<label for="apellidos">Apellidos: </label><input type="text" id="apellidos" name="apellidos"><span id="er_ape" style="color: red;font-weight:bold;"></span><br>
<label for="edad">Fecha Nacimiento: </label><br>
<label for="mail">E-Mail: </label><input type="text" id="mail" name="mail"><br>
<label for="username">Nombre Usuario: </label><input type="text" id="username" name="username"><br>
<label for="password">Contraseña: </label><input type="password" id="password" name="password"><br>
<input type="submit" value="enviar">
</fieldset>
</form>
espero que te sirva :D

Última edición por necrokiller_j; 17/05/2011 a las 21:34

Etiquetas: validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:04.