Foros del Web » Programando para Internet » Javascript »

Error al intentar acceder a elementos creados dinamicamente

Estas en el tema de Error al intentar acceder a elementos creados dinamicamente en el foro de Javascript en Foros del Web. Que tal? Les comento mi problema: tengo una funcion que se llama "validar()" que verifica antes de crear una nueva fila en una tabla, que ...
  #1 (permalink)  
Antiguo 06/02/2007, 09:15
 
Fecha de Ingreso: febrero-2007
Mensajes: 2
Antigüedad: 17 años, 2 meses
Puntos: 0
Error al intentar acceder a elementos creados dinamicamente

Que tal? Les comento mi problema: tengo una funcion que se llama "validar()" que verifica antes de crear una nueva fila en una tabla, que la anterior haya sido completada. Con la primer fila no tengo problemas pero al crear la segunda sale un error de javascript "document.nueva.apellido1.value es nulo o no es un objeto". Intente acceder al objeto de diferentes maneras pero no hubo caso, he probado dentro de la funcion ademas de lo que está, lo siguiente: eval("document.nueva.GetElementById(apellido1).val ue=='' ") y eval("document.nueva.apellido1.value=='' ") pero no funciono. Espero que alguien me pueda ayudar y desde ya le agradezco por su tiempo. Aca les dejo el codigo:

<Script>
var n = 0;
function validar()
{
var anterior;
n++;
if (n == 1)
{
add(n);
}
else
{
anterior=n-1;
if(eval("document.nueva.apellido"+ anterior + ".value==''") )
{
alert('No puede agregar una nueva fila ya que no ha completado los campos obligatorios de la anterior.');
}
else
{
add(n);
}
}
}

function add(n)
{
pepe = document.getElementById('responsables');
fila = document.createElement('tr');

celda = document.createElement('td');
fila.appendChild(celda);
ape=document.createElement('input');
ape.type='text';
ape.name='apellido'+n;
ape.size='11';
celda.appendChild(ape);

celda = document.createElement('td');
fila.appendChild(celda);
nom=document.createElement('input');
nom.type='text';
nom.name='nombre'+n;
nom.size='11';
celda.appendChild(nom);

celda = document.createElement('td');
fila.appendChild(celda);
tel=document.createElement('input');
tel.type='text';
tel.name='telefono'+n;
tel.size='11';
celda.appendChild(tel);
pepe.appendChild(fila);

celda = document.createElement('td');
fila.appendChild(celda);
cel=document.createElement('input');
cel.type='text';
cel.name='celular'+n;
cel.size='11';
celda.appendChild(cel);

celda = document.createElement('td');
fila.appendChild(celda);
mail=document.createElement('input');
mail.type='text';
mail.name='email'+n;
mail.size='17';
celda.appendChild(mail);

celda = document.createElement('td');
fila.appendChild(celda);
act=document.createElement('input');
act.type='text';
act.name='actividad'+n;
act.size='13';
celda.appendChild(act);

}
</script>
  #2 (permalink)  
Antiguo 07/02/2007, 13:31
 
Fecha de Ingreso: febrero-2007
Mensajes: 2
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Error al intentar acceder a elementos creados dinamicamente

Ya lo pude resolver. Solo tuve que agregarle a cada componente cuando lo creaba no solo su "nombre" sino tambien su "id", lo ejemplifico en mi codigo cuando creo un componente hago:
ape=document.createElement('input');
ape.type='text';
ape.name='apellido'+n;
ape.size='11';
celda.appendChild(ape)

bueno a ese codigo hay que agregarle la linea "ape.id='apellido'+n;" sin las comillas y listo.
  #3 (permalink)  
Antiguo 21/02/2007, 05:25
Usuario no validado
 
Fecha de Ingreso: marzo-2004
Ubicación: barcelona
Mensajes: 28
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: Error al intentar acceder a elementos creados dinamicamente

Hola Moska,

tengo un codigo muy parecido al tuyo, consigo que funcione en IE y en FF perfectamente, pero me encuentro con el problema que en FF no me pasa los valores de los campos creados por javascript ni por el method post ni por el method get.

El problema es bien raro. Mi html se compone de tablas y otros elementos estructurales además de una serie de campos de formulario fijos, el usuario puede escojer añadir filas al formulario para añadir más datos. al hacer el submit en IE recibo todos los datos del form (ya sean los campos fijos o los creados con la funcion) en cambio en FF solo recibo los campos fijos, los creados con la función como si no existieran.

Alguna idea????
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 16:03.