SoloCodigo

Programación Web y Scripting => JavaScript => Mensaje iniciado por: Mollense en Sábado 21 de Abril de 2007, 01:10

Título: Componentes Creados Con Ajax
Publicado por: Mollense en Sábado 21 de Abril de 2007, 01:10
Hola amigos mios.

Me veo en la necesidad de acceder desde JavaScript a algunos componentes (Inputs) generados previamente mediante una página PHP ejecutada mediante AJAX cuyo resultado es asignado a un DIV de la página principal llamado "marco" de la siguiente manera:
Código: Text
  1. cuerpo=document.getElementById("marco");
  2. cuerpo.innerHTML=ajax.responseText;
  3.  
.-

El problema es a la hora de procesar los datos ingresados por el usuario en esos inputs ya que JavaScript no los puede accesar, y aunque los esté viendo en pantalla, en el código fuente de la página no están, se encuentra el DIV vacío
Código: Text
  1. <div id="marco"></div>
  2.  
como es cargado en un principio (Antes de ejecutar la petición mediante AJAX).-

Alguien conoce alguna solución o tiene alguna sugerencia para que pueda probar?

Se los agradezco por adelantado.-

Un saludo :beer:
Título: Re: Componentes Creados Con Ajax
Publicado por: Mollense en Sábado 21 de Abril de 2007, 02:30
Bueno gente. Ya está.
En vez de acceder de la forma
Código: Text
  1. document.formCriteros.criterioChoferes.value
  2.  
se debe acceder mediante
Código: Text
  1. document.getElementById('criterioChoferes').value
  2.  

Un saludo
Título: Re: Componentes Creados Con Ajax
Publicado por: Altareum en Domingo 22 de Abril de 2007, 00:24
Bueno, en realidad, si el campo lo crea dentro del formulario "formCriteros", debería funcionar el código que intentabas utilizar, aunque depende mucho del navegador.

Igualmente no recomiendo usar la propiedad innerHTML, ya que es problemática. Por ejemplo en IE (no se la v7, porque no la he usado aún), si llenas un input, creado con innerHTML, y luego agregas un nuevo campo al documento (con innerHTML), el valor agregado desaparece.


Te recomiendo que uses la extensión FireBug de Firefox... es muy útil para ver lo que creas dinámicamente.


Altareum.
Título: Re: Componentes Creados Con Ajax
Publicado por: Mollense en Domingo 22 de Abril de 2007, 01:20
Muchas gracias Altareum

Cita de: "Altareum"
Bueno, en realidad, si el campo lo crea dentro del formulario "formCriteros", debería funcionar el código que intentabas utilizar, aunque depende mucho del navegador.
Cierto, el verdadero problema es que solo estaba especificando el atributo name y no así el id.-

Cita de: "Altareum"
Igualmente no recomiendo usar la propiedad innerHTML, ya que es problemática. Por ejemplo en IE (no se la v7, porque no la he usado aún), si llenas un input, creado con innerHTML, y luego agregas un nuevo campo al documento (con innerHTML), el valor agregado desaparece.
Que curioso, nunca se dio el caso en el que tenga que trabajar de esa forma y por eso lo desconocía. Alguna alternativa?

Cita de: "Altareum"
Te recomiendo que uses la extensión FireBug de Firefox... es muy útil para ver lo que creas dinámicamente.
Si lo tengo y gracias al cielo que existe :D

Un saludo Altareum :beer:
Título: Re: Componentes Creados Con Ajax
Publicado por: Altareum en Lunes 23 de Abril de 2007, 15:31
Cita de: "Angel_K_ido"
Cita de: "Altareum"
Igualmente no recomiendo usar la propiedad innerHTML, ya que es problemática. Por ejemplo en IE (no se la v7, porque no la he usado aún), si llenas un input, creado con innerHTML, y luego agregas un nuevo campo al documento (con innerHTML), el valor agregado desaparece.
Que curioso, nunca se dio el caso en el que tenga que trabajar de esa forma y por eso lo desconocía. Alguna alternativa?

Sip, usa las funciones del DOM como apendChild, childNodes, etc... Con estas no tendrás ningún problema.

Por otro lado,
Cita de: "Angel_K_ido"
Bueno, en realidad, si el campo lo crea dentro del formulario "formCriteros", debería funcionar el código que intentabas utilizar, aunque depende mucho del navegador.
Cierto, el verdadero problema es que solo estaba especificando el atributo name y no así el id.-[/quote]

??, pero si justamente para acceder la forma document.formluario.campo.value , se hace mediante el atributo name del campo.
El id, sirve para la función document.getElementById()


Altareum.
Título: Re: Componentes Creados Con Ajax
Publicado por: Mollense en Lunes 23 de Abril de 2007, 16:08
Cita de: "Altareum"
Cita de: "Angel_K_ido"
Cita de: "Altareum"
Igualmente no recomiendo usar la propiedad innerHTML, ya que es problemática. Por ejemplo en IE (no se la v7, porque no la he usado aún), si llenas un input, creado con innerHTML, y luego agregas un nuevo campo al documento (con innerHTML), el valor agregado desaparece.
Que curioso, nunca se dio el caso en el que tenga que trabajar de esa forma y por eso lo desconocía. Alguna alternativa?

Sip, usa las funciones del DOM como apendChild, childNodes, etc... Con estas no tendrás ningún problema.
Muchas gracias Altareum, voy a hacerlo como me decís.-

Cita de: "Altareum"
Por otro lado,
Cita de: "Angel_K_ido"
Bueno, en realidad, si el campo lo crea dentro del formulario "formCriteros", debería funcionar el código que intentabas utilizar, aunque depende mucho del navegador.
Cierto, el verdadero problema es que solo estaba especificando el atributo name y no así el id.-

??, pero si justamente para acceder la forma document.formluario.campo.value , se hace mediante el atributo name del campo.
El id, sirve para la función document.getElementById()[/quote]Si, eso es lo que yo tenia entendido pero no podía hacerlo funcionar, tal vez el error fue otro y lo resolví sin darme cuenta llegando a una conclusión equivocada :P . Voy a probar de nuevo.-

Un saludo :beer: y gracias de nuevo.-