Foros del Web » Programando para Internet » Javascript »

Nombre de objeto de formulario variable

Estas en el tema de Nombre de objeto de formulario variable en el foro de Javascript en Foros del Web. Hola a todos creo q mi pregunta es medio tonta para muchos, pero a mi me trae de cabeza. Estoy tratando de validar un formulario, ...
  #1 (permalink)  
Antiguo 26/05/2006, 11:22
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 6 meses
Puntos: 0
Nombre de objeto de formulario variable

Hola a todos
creo q mi pregunta es medio tonta para muchos, pero a mi me trae de cabeza.
Estoy tratando de validar un formulario, que los campos no esten vacios y eso ya lo pude hacer la complicacion es que puedo tener X cantidad de campos.

el nombre de cada campo es algo asi como

caja1
caja2
caja3

y esta dado en php de la siguiente forma:
<input name="nombre<?php echo $i; ?>" type="text" id="nombre<?php echo $i; ?>" size="15" />
donde $i es un contador.....

al momento de querer validar se que debo hacerlo asi:

<script>
if (document.formulario.caja.value == "")
{
alert ("tas frito.. esta vacia la caja");
}
</script>

el problema es ¿como le hago con los nombres variables?

deberia ser algo asi como:
" document.formulario.'variable'.value " pero no tengo ni la mas remota idea de como hacerlo... buaaaaa llevo dos dias aprendiendo javascript y ya me estoy arrepintiendo....

bueno.. saludos a todos.. y gracias de antemano
  #2 (permalink)  
Antiguo 26/05/2006, 11:29
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola pato_volador

Puedes hacer un bucle que recorra los elementos del formulario:
Código:
for(i=0; ele=document.forms[0].elements[i]; i++)
  if (ele.type=='text' && ele.value=='')
    alert('¡Pon algo, tron!');
Saludos,
  #3 (permalink)  
Antiguo 26/05/2006, 11:34
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola pato volador

Mira, puedes hacer algo así...

Das vuelta por todos lampos del form con un bucle que itere tantas veces como elementos tenga el form

for(m=0; m < document.formulario.length; m++){

}
Si dices que los campos comparten caja por name verificas en cada iteración si su name contiene "caja"

if(document.formulario[m].name.substring(0,4) == 'caja')

Si es afirmativo, que verifique si el campo está vacío

if(document.formulario[m].value == ""){
alert ("tas frito.. esta vacia la caja");
}

Lo pillas?
  #4 (permalink)  
Antiguo 26/05/2006, 11:35
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
oño se me adelantaron !

Hola Javier
  #5 (permalink)  
Antiguo 26/05/2006, 11:36
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 6 meses
Puntos: 0
Oooooras!!! bueno, voy a probar... y les digo como me fue. muchas gracias!
  #6 (permalink)  
Antiguo 26/05/2006, 11:37
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Oye Javier, esto qué es?

for(i=0; ele=document.forms[0].elements[i]; i++)
  #7 (permalink)  
Antiguo 26/05/2006, 11:47
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 6 meses
Puntos: 0
Dios existe.... en alguna parte de la red anda pululando y les da buenos consejos a los tarados como yo...
Muchas gracias.... con ambas respuestas sli ganado, con la de JavierB aprnedi a validar todo el formulario y la de tunait me dio la respuesta mas especifica, por que algo que olvide mencionar es que tengo un monton de elementos en el formulario y solo queria validar a las cajas (que son las obligatorias...) haaaa que buen pez....

Gracias a los dos!!!

un cuack de agradecimiento!! Cuuuuuuaaaaack!
  #8 (permalink)  
Antiguo 26/05/2006, 12:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Cita:
Iniciado por tunait
Oye Javier, esto qué es?

for(i=0; ele=document.forms[0].elements[i]; i++)
Esto es que va recorriendo los elementos del formulario y cuando llega a un índice que no existe, devuelve undefined y el bucle termina.

Además es muy comodo escribir:

if (ele.type=='text' && ele.value=='algo')

en lugar de:

if (document.formulario[i].type=='text' && document.formulario[i].value=='algo')

pato_volador, me alegro de que te haya servido la respuesta.

Saludetes,
  #9 (permalink)  
Antiguo 26/05/2006, 12:38
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Gracias Javier

...me parece que esta conversación ya la habíamos tenido me ha venido a la neurona al leer tu explicación así como un deja-vú

Me alegra que lo solucionaras pato volador

Un saludo
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 00:19.