Foros del Web » Programando para Internet » Javascript »

Renombrar elementos del form al clonar

Estas en el tema de Renombrar elementos del form al clonar en el foro de Javascript en Foros del Web. Hola y buen inicio de semana para todos Necesito ayuda para cambiar el nombre de un grupo de radioButton al clonar tabla que los contiene. ...
  #1 (permalink)  
Antiguo 27/03/2006, 10:44
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
Renombrar elementos del form al clonar

Hola y buen inicio de semana para todos

Necesito ayuda para cambiar el nombre de un grupo de radioButton al
clonar tabla que los contiene.
Me explico. Tengo una tabla que tiene un "grupo de radio" con el nombre:
name="RadioGroup1"

A esta tabla la uso para clonar con

document.getElementById(tablaAClonar).cloneNode(tr ue)
El problema es que el "nuevo grupo de radio"
en la nueva tabla clonada se llaman de la misma forma, o sea :
name="RadioGroup1"
¿ Como puedo hacer para que cuando se clone la tabla el nuevo grupo se
llame "RadioGroup2" ?

gracias a todos
saludos
  #2 (permalink)  
Antiguo 27/03/2006, 10:52
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 chefnelone

Esto te servirá:
Código:
  otraTabla = document.getElementById(tablaAClonar).cloneNode(true);
  for (i=0; ele=otraTabla.getElementsByTagName('input')[i]; i++)
    if (ele.type=='radio')
      ele.name='RadioGroup2';
Saludos,
  #3 (permalink)  
Antiguo 27/03/2006, 11:27
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
gracia javier. Yo tengo que colocar el codigo que me pasaste dentro de este que ya tenia (es uno para generar varios clones al mismo tiempo)
He probado pero no me funciona
Podrias explicarmelo un poco mas
Esto es lo que ya tengo :

tabla =2;
for (i=1;i<NumTotalDoors;i++)
{
var nuevaTabla = document.getElementById(divAClonar).cloneNode(true );

nuevaTabla.id = divAClonar + tabla ++;

document.body.appendChild(nuevaTabla);
}
donde pongo el me pasaste ahora?
muchas gracias
  #4 (permalink)  
Antiguo 27/03/2006, 11:37
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 de nuevo.

Lo que hace el código que te puse es recorrer todos los input que hay dentro de la tabla y si son del tipo "radio" cambia el nombre. Lo puedes poner antes de añadir el nuevo elemento al body
Código:
tabla =2;
for (i=1;i<NumTotalDoors;i++)
{
var nuevaTabla = document.getElementById(divAClonar).cloneNode(true );

nuevaTabla.id = divAClonar + tabla ++;
for (i=0; ele=nuevaTabla.getElementsByTagName('input')[i]; i++)
    if (ele.type=='radio')
      ele.name='RadioGroup'+tabla;
document.body.appendChild(nuevaTabla);
}
Saludos,
  #5 (permalink)  
Antiguo 27/03/2006, 11:58
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
lo he probado y funciona bien pero no me deja duplicar mas de un div. Si le indico que me haga 6 copias solo hace una. Y si elimino lo que me has pasado ultimo vuelve a funcionar bien.
Me parece que es porque hay un //for(i=....// dentro de otro //for(i=....//
Es como si el nuevo codigo cortara la repeticion para crear copias. Es como si anulara el primer //for (i=1;i<NumTotalDoors;i++)//
No me faltará un corchete o algo
gracias
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 06:41.