Foros del Web » Programando para Internet » Javascript »

Validando formulario.

Estas en el tema de Validando formulario. en el foro de Javascript en Foros del Web. Aquí os dejo la parte que quiero validar del formulario: *Los puntos suspensivos significa que el código continúa. Código: ... <select name="cinco" class="text"> <option value="logo01">Logo01</option> ...
  #1 (permalink)  
Antiguo 17/09/2008, 05:34
 
Fecha de Ingreso: noviembre-2005
Mensajes: 9
Antigüedad: 18 años, 5 meses
Puntos: 0
Validando formulario.

Aquí os dejo la parte que quiero validar del formulario:
*Los puntos suspensivos significa que el código continúa.
Código:
...

<select name="cinco" class="text">
     <option value="logo01">Logo01</option>
     <option value="logo02">Logo02</option>
...
</select>
<select name="cuatro" class="text">
     <option value="logo01">Logo01</option>
     <option value="logo02">Logo02</option>
...
</select>
<select name="tres" class="text">
      <option value="logo01">Logo01</option>
      <option value="logo02">Logo02</option>
...
</select>
<select name="dos" class="text">
      <option value="logo01">Logo01</option>
      <option value="logo02">Logo02</option>
...
</select>
<select name="uno" class="text">
      <option value="logo01">Logo01</option>
      <option value="logo02">Logo02</option>
...
</select>

...
Y aquí la estructura que sigo de la validación:
Código:
function validar(formulario){
	var esValido = true;
		if(formulario.nombre.value.length <= 0){
			esValido = false;
			alert("Escribe tu nombre, por favor.");
		}
        return esValido;
}
--------------------------------------------------------------------

La validación que quiero realizar en esa parte consiste en que todos los campos sean diferentes, que no puedan elegir el mismo varias veces. Si algún campo coincide con otro, que salte la alerta.

Si es muy complicado, me lo dicen, que aborto. xD

Un saludo y gracias.
  #2 (permalink)  
Antiguo 17/09/2008, 06:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Validando formulario.

Si te fijas, la priemera comparación que tienes en tu validación no tiene mucho sentido, estás comparando que:
Texto del Control (menor o igual que) 0. Un texto no puede ser menor que 0 . Lo más probable es que debería ser el comparador > (mayor que) 0.

Y segundo, según entendí lo que quieres hacer es comparar que en ninguno de los select se haya seleccionado un mismo valor, en ese caso puedes ir añadiendo en un array los valores y cada vez que compares uno nuevo, que recorra ese array para saber si no está repetido.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 17/09/2008, 06:45
 
Fecha de Ingreso: noviembre-2005
Mensajes: 9
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Validando formulario.

Muchas gracias David.

Aunque en el tema de los array, voy a ir un poco perdido. A ver que sale. xD
  #4 (permalink)  
Antiguo 17/09/2008, 07:33
 
Fecha de Ingreso: noviembre-2005
Mensajes: 9
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Validando formulario.

Código:
var valoresCampos = new Array(5);
valoresCampos[0] = formulario.uno.value;
valoresCampos[1] = formulario.dos.value;
valoresCampos[2] = formulario.tres.value;
valoresCampos[3] = formulario.cuatro.value;
valoresCampos[4] = formulario.cinco.value;

var int enc = 0;
var int i = 0; 
var int j;

while(enc == 0 && i<4){
	j = i + 1;
	while(enc == 0 && j < 5){
		if(valoresCampos[i] == valoresCampos[j])
			enc = 1;
		else
			j++;
	}
	i++;
}

if(enc == 1){
esValido = false;
alert("¡Esto es una alerta!");
}
Esto es lo que tengo, pero me anula toda la validación anterior. ¿Qué es lo que tiene mal?

Un saludo y muchas gracias por contestar.
  #5 (permalink)  
Antiguo 17/09/2008, 07:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Validando formulario.

En Javascript no se especifica el tipo de variables. Por lo que esto:
Código javascript:
Ver original
  1. var int enc = 0;
  2. var int i = 0;
  3. var int j;
Debería ser solamente:
Código javascript:
Ver original
  1. var enc = 0;
  2. var i = 0;
  3. var j = 0;
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 17/09/2008, 07:48
 
Fecha de Ingreso: noviembre-2005
Mensajes: 9
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Validando formulario.

¡Muchas gracias David!
Ahora funciona todo correctamente.
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:44.