Foros del Web » Programando para Internet » Javascript »

Ayuda con un array y for.

Estas en el tema de Ayuda con un array y for. en el foro de Javascript en Foros del Web. Hola a todos. Tengo problemas con el siguiente código. Código: function formNuevoCliente(valor){ var campos = new Array("nombre","direccion"); for(i=0;i<length(campos);i++){ if(document.forms[valor].campos[i].value==""){ alert('No existen datos en el campo'+campos); ...
  #1 (permalink)  
Antiguo 05/06/2008, 00:22
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Ayuda con un array y for.

Hola a todos.

Tengo problemas con el siguiente código.

Código:
function formNuevoCliente(valor){

	var campos = new Array("nombre","direccion");

	for(i=0;i<length(campos);i++){
		if(document.forms[valor].campos[i].value==""){
			alert('No existen datos en el campo'+campos);
		}
	}
	document.forms[valor].submit()
	}
Lo que pretendo hacer es comprobar unos campos de un formulario si están vacios.

Para no tener que escribir una a una las líneas del condicional que compruebe si el valor es vacío, he usado un array para poner el nombre de los campos a comprobar.

He visto que no hay en javascript un bucle foreach que recorra el array, así que he pensado de usar un for. Pero no me funciona.

¿Alguien podría echarme una mano?.
__________________
------
Saludos.
  #2 (permalink)  
Antiguo 05/06/2008, 00:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Ayuda con un array y for.

Hola:

El mismo bucle for se puede usar para recorrer los atributos de los objetos usando otra sintaxis:
for (i in campos) alert(campos[i])... aunque en los objetos declarados como array también debería recorrer atributos como length, que por cierto, al ser un atributo de los arrays su sintaxis es así:

Código:
for (i = 0, total = campos.length; i < total; i ++) alert(campos[i])
Y por último, ten cuidado que esa forma de hacer submit es forzada y se considera "no accesible".

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 05/06/2008, 05:05
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Respuesta: Ayuda con un array y for.

Gracias por la info, pero aún así no funciona.

Código:
function formNuevoCliente(valor){

	var campos = new Array("nombre","direccion");

	for(i in campos){
		if(document.forms[valor].campos[i].value==""){
			alert('No existen datos en el campo'+campos);
		}
	}
	document.forms[valor].submit()
	}
__________________
------
Saludos.
  #4 (permalink)  
Antiguo 05/06/2008, 07:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Ayuda con un array y for.

Hola:

En principio tienes algo mal:

Código:
if(document.forms[valor][campos[i]].value=="")
Aunque hay otro problema... creo que al tratarse de un array, es conveniente que uses el otro bucle, pero entrecorchetando los resultados del array...

Código:
	for(i=0;i<campos.length;i++){
		if(document.forms[valor][campos[i]].value==""){
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 05/06/2008, 14:30
 
Fecha de Ingreso: abril-2007
Mensajes: 166
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Ayuda con un array y for.

Cita:
Iniciado por bruli Ver Mensaje
Hola a todos.

Tengo problemas con el siguiente código.

Código:
function formNuevoCliente(valor){

	var campos = new Array("nombre","direccion");

	for(i=0;i<length(campos);i++){
		if(document.forms[valor].campos[i].value==""){
			alert('No existen datos en el campo'+campos);
		}
	}
	document.forms[valor].submit()
	}
Lo que pretendo hacer es comprobar unos campos de un formulario si están vacios.

Para no tener que escribir una a una las líneas del condicional que compruebe si el valor es vacío, he usado un array para poner el nombre de los campos a comprobar.

He visto que no hay en javascript un bucle foreach que recorra el array, así que he pensado de usar un for. Pero no me funciona.

¿Alguien podría echarme una mano?.
Haber en principio segun he visto, tienes varias cosas mal:

1º for(i=0;i<length(campos);i++)

el for deberia ser así: for (i=0;i.length.campos;i++)

2º if(document.forms[valor].campos[i].value==""

deberia ser así : if(document.forms[numero de formularios que tienes, si tienes un formulario le pones 0 si tienes 2 pues ya depende de cual quiers identificar].campos[i].value=""

Si lo que quiers es que te validen todos los campos en una funcion puedes hacerlo poniendo le un identificador (id) a cada campo del formulario y luego en la función comprobando si estan vacíos o no

Espero que te sirva, ten en cuenta que no soy muy experta, xD
  #6 (permalink)  
Antiguo 06/06/2008, 04:58
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Respuesta: Ayuda con un array y for.

Gracias por la ayuda.

Creo que el problema era en

document.forms[valor][campos[i]].value== ""

Que en un principio lo tenía así:

document.forms[valor].campos[i].value== ""

He probado las dos formas de hacer el for y funciona de las dos maneras. Tanto con:

for(i in variable)

como:

for(i=0;i<variable.length;i++)

Ahora me funciona perfectamente.

Pregunta para Caricatos:

¿A que te refieres con lo de la manera de hacer el submit no es muy accesible?.
__________________
------
Saludos.
  #7 (permalink)  
Antiguo 06/06/2008, 07:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Ayuda con un array y for.

Cita:
Iniciado por bruli Ver Mensaje
Pregunta para Caricatos:

¿A que te refieres con lo de la manera de hacer el submit no es muy accesible?.
Hola:

Los visitantes que tengan javascript desactivado, jamás podrán enviar un formulario enviado mediante un script (formulario.submit())...

Evidentemente muchas páginas interactivas no son funcionales para esos internautas... tal vez no te importe por el índole de tu página, pero siempre es bueno conocer como hacer bien las cosas... en lo concerniente a formularios, enviarlo con botones submit, y con al menos 2 validaciones (la más importante en el servidor)... al menos eso es lo que pienso

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 07/06/2008, 04:23
Avatar de marcopoloaz06  
Fecha de Ingreso: julio-2007
Ubicación: México
Mensajes: 457
Antigüedad: 16 años, 9 meses
Puntos: 11
Respuesta: Ayuda con un array y for.

Hola,
bueno
yo le entro.
En una página
antiemos que hice
en el formalario puse
Código HTML:
<noscript>
  <input type="submit" />
</noscript> 
nose igual y te puede servir la etiqueta noscript
bueno eso es todo por el momento

Saludos && adiOs....
XD
:]
__________________
Aerolíneas Alicia :D
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:19.