Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/02/2012, 15:03
Avatar de Garot
Garot
 
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 10 meses
Puntos: 7
Respuesta: Problema concatenando dentro de un for

Gracias a todos por sus comentarios!

Pero no se preocupen! aca encontre la solución, la dejo por si a alguien le sirve.

En realidad encontre dos soluciones posibles:

1-En el primer caso dentro del formulario dinámico se generan una cantidad n de campos llamados "subcategoria", pero todos estos campos se encuentran en el mismo formulario. Entonces recorro todos los elementos del formulario con el array "elements" (que guarda una referencia con cada elemento que haya dentro del formulario), busco los campos llamados "subcategoria" y les cambio el valor:

Código Javascript:
Ver original
  1. function pasarSub(form)
  2. {
  3.  
  4. cat= document.form.subi.options[form.subi.selectedIndex].text;
  5.  
  6. for (i=0;i<document.form.elements.length;i++) {
  7.       if(document.form.elements[i].name == "subcategoria")  {
  8.          document.form.elements[i].value = cat ;
  9.          document.form.elements[i].size = cat.length ;
  10.       }
  11. }
  12. }


2- En el segundo caso uso la concatenación del nombre del formulario para acceder a los campos que necesito. Aca tambien se generan n cantidad de campos llamados "total_parcial" pero estan todos en formularios diferentes que se llaman iguales pero llevan un número cresciente atras para diferenciarlos(presupuesto1, presupuesto2, presupuesto3, etc, etc). Entonces voy accediendo a cada formulario cambiandole el nombre por medio de la concatenación con la variable "i" que va generando "for" :

Código Javascript:
Ver original
  1. function muestraValor(form)
  2. {
  3.     for (i=1; i < document.registros.num_registros.value; i++) {  
  4.     nombre= eval("document.presupuesto" + i)
  5.    
  6.     nombre.total_parcial.value = (nombre.precio_unitario.value * nombre.cantidad.value).toFixed(2);
  7.     }
  8. }

Eso es todo, espero que le sea de utilidad a alguien más.

Saludos!