Foros del Web » Programando para Internet » Javascript »

Problema concatenando dentro de un for

Estas en el tema de Problema concatenando dentro de un for en el foro de Javascript en Foros del Web. Hola Estoy usando esta funcion: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function pasarSub ( form ) {   document. form . subcategoria1 . value ...
  #1 (permalink)  
Antiguo 24/02/2012, 15:36
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 2 meses
Puntos: 7
Problema concatenando dentro de un for

Hola

Estoy usando esta funcion:
Código Javascript:
Ver original
  1. function pasarSub(form)
  2. {
  3.  
  4. document.form.subcategoria1.value = document.form.categoria.options[form.categoria.selectedIndex].text ;
  5.  
  6. document.form.subcategoria1.size = document.form.categoria.options[form.categoria.selectedIndex].text.length ;
  7.  
  8. }
Bueno, esta script funciona perfecto!!

En base a ese script quise hacer lo mismo pero en este caso tiene que modificar varios campos de formulario que se llaman igual pero que va cambiando el numero del final, osea: subcategoria1, subcategoria2, etc, etc.

Entonces hice esto:
Código Javascript:
Ver original
  1. function pasarSub(form)
  2. {
  3.  
  4. subcat="subcategoria"+1;
  5.  
  6. for (i=1; i < document.form.registros.value; i++) {  
  7.    
  8.     document.form.subcat.value = document.form.categoria.options[form.categoria.selectedIndex].text ;
  9.     document.form.subcat.size = document.form.categoria.options[form.categoria.selectedIndex].text.length ;
  10. }
  11. }

Esa es una de las tantas que probe, intentente con "subcategoria"+"1"
, dentro del for probe con document.form.subcategoria+i
y un montón de combinaciones diferentes, ya nose si es que no se puede hacer eso o no estoy consiguiendo concatenar correctamente.

Si alguien me puede ayudar!!

Gracias!!
  #2 (permalink)  
Antiguo 25/02/2012, 12:28
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 2 meses
Puntos: 7
Respuesta: Problema concatenando dentro de un for

Una manito por favor!
Una orientación de como puedo conseguir eso?

gracias!
  #3 (permalink)  
Antiguo 26/02/2012, 15:03
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 2 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!

Etiquetas: formulario, funcion
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 20:21.