Foros del Web » Programando para Internet » Javascript »

ayuda: Funcion con for each para validar campos

Estas en el tema de ayuda: Funcion con for each para validar campos en el foro de Javascript en Foros del Web. hola a todos y antemano y un saludo. pues eh aqui necesitando de su ayuda/sugerencias para arreglar un codigo que en verdad, debido a que ...
  #1 (permalink)  
Antiguo 01/05/2010, 23:22
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta ayuda: Funcion con for each para validar campos

hola a todos y antemano y un saludo.
pues eh aqui necesitando de su ayuda/sugerencias para arreglar un codigo que en verdad, debido a que soy un poco novato en javascript, nose cual es el problema de que no funcione, bueno lo que quiero hacer es que cuando un cmapo este vacio se muestre un div mostrando una advertencia, bueno eso lo eh logrado hacer con el evento onBlur en cada boton de texto con el siguente codigo:
Código:
function val(valor){
   lon=document.getElementById(valor).value.length;
    if (lon==0){
	 VISIBLE="block";
	 document.getElementById("error").style.display=VISIBLE;
     //alert(valor +' es un Campo es obligatorio');
	 document.getElementById(valor).value="";
    }
}
si me resulta, pero lo que quiero es no hacerlo con el evento onblur en cada texto, sino en un onclick en el boton de enviar consulta, para ello, lei en este foro que un sustituto al foreach es for in, y lo utilizo de la siguente forma sin obtener el resultado deseado:
Código:
function validar(){
	arreglo= new("nombre","apellido","carnet","sexo","email","direccion","carrera","telefono");
	bandera=true;
	for (elemento in arreglo){
	 while(bandera==true){
	  lon=document.getElementById(elemento).value.length;
	  if(lon==0){
	   visible="block";
	   document.getElementById("error").style.display=visible;
	   document.getElementById(elemento).value="";
	   bandera=false;
	   exit();
	  }
	 }
	}
la verdad pienso que el problema puede estar en el codigo del for, pero no encuentro un error el cual este ocasionando el mal funcionamiento del scritp.

Bueno Gracias de antemano y porfavor si me pueden ayudar con este problemilla estaria muy agradecido
  #2 (permalink)  
Antiguo 01/05/2010, 23:38
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: ayuda: Funcion con for each para validar campos

es muy diferente el for each al for/in. for each recorre los elementos un array (en php) mientras que for/in recorre por las propiedades de un objeto. lo que tu requieres es un simple bucle for. para controlar el bucle tienes que leer la longitud del array.
Código:
var array = ['uno', 'dos', 'tres'];
for(var i = 0 /*variable de control*/; i < array.length /* condicion de ciclo*/; i++ /* modificador de iterador*/){
array[i];
// con la variable de control se accesa cada elemento del array;
}
por otro lado, fijate que en la variable arreglo no estas definiendo un array. ese es el primer error que tienes. te falto indicar el constructor de array.
Código:
variable = new Array(/*valores*/);
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 02/05/2010, 00:29
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: ayuda: Funcion con for each para validar campos

Código:
function validar(){
	arreglo= new Array("nombre","apellido","carnet","sexo","email","direccion","carrera","telefono");
//todos esos son los id de las cajas de texto que quiero validar
	bandera=true;
	for (i=0;i<arreglo.length;i++){
	  lon=document.getElementById(arreglo[i]).value.length;
	  if(lon==0){
	   bandera=false;
	  }
	}
	if(bandera==false){
	   visible="block";
	   document.getElementById("error").style.display=visible;
	}elseif(bandera==true){
	   visible="block";
	   document.getElementById("oki").style.display=visible;
	}
}
creo que capte tu idea y agregue lo del New Array a la variable arreglo
cambie el for/in por un simple for
pero igual no me funciona aun, asi como esta arriba tengo el codigo.
Gracias Igual, sigo buscando :)
  #4 (permalink)  
Antiguo 02/05/2010, 01:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: ayuda: Funcion con for each para validar campos

Hola:

Seguro que al tratarse de un form tienes los campos con su atributo name... pero ¿está también el id?... cuando usas getElementById(), ese id debe estar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 02/05/2010, 12:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: ayuda: Funcion con for each para validar campos

pues creo que si ese fuera el problemita no me funcionara con el evento onblur para cada textbox, pero bueno asi tengo cada textbox respectivamente:
Código:
<td><input type="text" name="direccion" id="direccion" size="50" maxlength="75" id="telefono"/></td>
Gracias por las respuestas

Etiquetas: funciones, 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:29.