Foros del Web » Programando para Internet » Javascript »

recorrer array de inputs dinámicos

Estas en el tema de recorrer array de inputs dinámicos en el foro de Javascript en Foros del Web. Hola tengo un arreglo total[] que se crea de los inputs que se generan dinámicamente (create element, setAttribute etc...). necesito recorrer el array que se ...
  #1 (permalink)  
Antiguo 30/10/2006, 20:47
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
recorrer array de inputs dinámicos

Hola

tengo un arreglo total[] que se crea de los inputs que se generan dinámicamente (create element, setAttribute etc...).

necesito recorrer el array que se generan de estos con un (foreach) o
Código PHP:
for (elemento in datoArrayAsociativo
. el problema es que nose como agregar el arreglo generado por los inputs y colocarlos en el for. En otras palabras que tengo que colocar en datoArrayAsociativo para que recorra los valores de los inputs.

pense que podría ser asi pero no funciona.

Código PHP:
for (elemento in document.getElementById(total).value
los input al generarse quedan de esta forma:
Código PHP:
<input type="text" name="total['sub1']" id="total['sub1']" />
<
input type="text" name="total['sub2']" id="total['sub2']" />
<
input type="text" name="total['sub3']" id="total['sub3']" />
<
input type="text" name="total['sub4']" id="total['sub4']" /> 
cualquier ayuda gracias.

Última edición por zsamer; 31/10/2006 a las 07:24
  #2 (permalink)  
Antiguo 31/10/2006, 15:31
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
alguna ayuda?
  #3 (permalink)  
Antiguo 01/11/2006, 01:40
(Desactivado)
 
Fecha de Ingreso: febrero-2005
Ubicación: Azcapotzalco
Mensajes: 299
Antigüedad: 19 años, 2 meses
Puntos: 2
por ejemplo

Código:
function recorrer(){

	for(i=0;i<total.elements.length;i++){
		document.total.elements[i].value = "algo";
	}

}
uso un for ordinario ya que el for in no se porque en i.explorer no funciona
  #4 (permalink)  
Antiguo 01/11/2006, 09:36
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Cita:
Iniciado por xp64 Ver Mensaje
por ejemplo

Código:
function recorrer(){

	for(i=0;i<total.elements.length;i++){
		document.total.elements[i].value = "algo";
	}

}
uso un for ordinario ya que el for in no se porque en i.explorer no funciona
hola, la idea es recorrer el array total (inputs) pero como array asociativo, con el "forech de javascript":

Código PHP:
for (key in array_del_total
mi problema es que no se que tengo que colocar en vez de array_del_total, yo había probado con document.getElementById(total).value pero no funciona.
  #5 (permalink)  
Antiguo 01/11/2006, 11: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
Hola:

Puedes agrupar esos inputs en un contenedor (div... fieldset...) y buscar todos los inputs de ese contenedor...

bloque = document.getElementById("contenedor").getElementsB yTagName("input");

... y luego se podría hacer el bucle...
for (elemento in bloque)...

Aunque debes tener cuidado con ese tipo de bucles porque me parece que hay casos que el atributo lenght lo toma como un "elemento" y puede darte errores... es mejor usarlo para obtener atributos de objetos que elementos de un array...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 01/11/2006, 11:37
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
gracias voy a revisar y les cuento como me fué.

muchos saludos!!!
  #7 (permalink)  
Antiguo 01/11/2006, 15:16
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Puedes agrupar esos inputs en un contenedor (div... fieldset...) y buscar todos los inputs de ese contenedor...

bloque = document.getElementById("contenedor").getElementsB yTagName("input");

... y luego se podría hacer el bucle...
for (elemento in bloque)...

Aunque debes tener cuidado con ese tipo de bucles porque me parece que hay casos que el atributo lenght lo toma como un "elemento" y puede darte errores... es mejor usarlo para obtener atributos de objetos que elementos de un array...

Saludos
Como seria un ejemplo de eso

ya que yo creo una lista, un textfield, y un ckeck, pero solo quiero verificar que el textfield no este vacio, lo hago dinanamicamente
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #8 (permalink)  
Antiguo 02/11/2006, 10:35
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Puedes agrupar esos inputs en un contenedor (div... fieldset...) y buscar todos los inputs de ese contenedor...

bloque = document.getElementById("contenedor").getElementsB yTagName("input");

... y luego se podría hacer el bucle...
for (elemento in bloque)...

Aunque debes tener cuidado con ese tipo de bucles porque me parece que hay casos que el atributo lenght lo toma como un "elemento" y puede darte errores... es mejor usarlo para obtener atributos de objetos que elementos de un array...

Saludos
hola,

necesito recorrer solos los inputs con id= total[], no el resto
¿que le faltaría a document.getElementById("contenedor").getElementsB yTagName("input"); para que contenga solo el array de total[]?


gracias y saludos.
ne
  #9 (permalink)  
Antiguo 02/11/2006, 12:35
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por zsamer Ver Mensaje
hola,

necesito recorrer solos los inputs con id= total[], no el resto
¿que le faltaría a document.getElementById("contenedor").getElementsB yTagName("input"); para que contenga solo el array de total[]?


gracias y saludos.
ne
Hola:

Los atributos id debem ser únicos (aunque explorer admita duplicados...)
Existe la colección creada con getElementsByName...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 02/11/2006, 14:56
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Los atributos id debem ser únicos (aunque explorer admita duplicados...)
Existe la colección creada con getElementsByName...

Saludos
claro que son unicos, total[] es un array asociativo del tipo:

total['sub1']
total['sub2']
total['sub3']
total['sub4']
.
.
.
total['subn']

Necesito que recorra solamente los inputs total['subx'], donde x = 1,2,3...n

no se si se entiende la ideas.

saludos!
  #11 (permalink)  
Antiguo 02/11/2006, 16:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

No debes confundir javascript con php...

Un elemento con atributo id o name con un juego de corchetes al final de su nombre no es más que esa cadena (con el mismo juego de corchetes sin nada dentro)... ese mismo nombre pasado a php indica que se trata de un array pero son cosas totalmente distinta.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 02/11/2006, 19:44
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
estoy complicado, solo necesito recorrer ese array asociativo en javascript, y no encuentro la forma.

no he podido encontrar la forma de recorrer el array total para sumar sus valores.

Actualmento lo hago de la forma que está mas abajo, pero no me sirve, por que depende del valor i, y este valor es incremental, entonces por ejemplo, si yo elimino el elemento dinamico input total['sub3'] y al volver a calcular la suma arroja error de javascript ya que dejó de existir dicho elemento al ser eliminado ya que el for ( i++) lo recorre en forma incremental.

Código PHP:
    sum=0;
    for (
1i<rowNumberi++)
    {
        
sum=sum+document.getElementById('total[sub'+i+']').value
    

Código:
rowNumber lo paso por parametro a la funcion, esta corresponde al total de input creados dinámicamente
por esta razon necesito recorrer el array de inputs total como array asociativo para que no dependa de un valor sino recorra los elementos existentes uno a uno.

espero que me puedan ayudar.

gracias y salu2
  #13 (permalink)  
Antiguo 14/05/2009, 14:05
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: recorrer array de inputs dinámicos

Llego un poco tarde con mi respuesta, pero estaba con este mismo problema y lo solucione de esta manera

utilizando el metodo de caricatos
Código javascript:
Ver original
  1. var oi=0;  //Objeto indicie
  2.     var thisObj;
  3.     var objs = document.getElementById("bloqueID").getElementsByTagName("input");
  4.     for (oi=0;oi<objs.length;oi++) {  
  5.         thisObj = objs[oi];  
  6.         if(thisObj.getAttribute('type') == 'hidden'){
  7.             alert(thisObj.value);
  8.         }
  9.     }

esto lo estaba utilizando para hacer algo similar al panel de wordprees para agregar los tags a un post y guardarlos en un input type=hidden
  #14 (permalink)  
Antiguo 14/05/2009, 14:13
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: recorrer array de inputs dinámicos

El mensaje original es de hace más de 2 años. Por favor, no reviváis temas tan antiguos.

Saludos,
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 17:15.