2011-09-06 26 views
9

Tengo un formulario que se genera a través de ajax basado en un cargador de múltiples archivos (swfupload). Agrega más elementos de formulario a un elemento dom dado al completar cada archivo cargado. Esto me da un problema. Si seleccioné 5 archivos para cargar, el primer archivo generará un formulario en el que comenzaré a ingresar datos, sin embargo, cuando se complete la carga del segundo archivo, borrará los datos ingresados ​​previamente en los elementos del formulario y también agregará los segundos elementos del formulario. .Agregar a innerHTML sin destruir los contenidos del formulario

creo que esto se debe im usando:

document.getElementById('test').innerHTML = document.getElementById('test').innerHTML + newformelements; 

Creo que hacer lo anterior no guarda ninguna datos introducidos en los formularios, sólo el propio HTML.

Entonces, ¿cómo puedo agregar a este elemento sin destruir lo que ya se ha puesto en los campos de formulario? El número de hijos posibles es dinámico basado en el cargador múltiple.

+1

No vas a creer esto, pero en realidad hay funciones de manipulación de DOM para que ': P', no utilice innerHTML - DOM recreación a través de innerHTML debe evitarse! –

+0

cuidado de divulgar? – David

+0

Creo que estás confundiendo para qué es innerHTML. ¿Estás requiriendo una tabla de alguna clase, que se extienda dinámicamente según nuevos datos? – T9b

Respuesta

6

¿Está abierto a usar jquery? Si sí, entonces usted puede fácilmente hacer algo como esto

$("#divid").append("html you want to append"); 
6

Utilice DOM manipulación, en este caso: Node.appendChild[docs].

innerHTMLsiempre destruir y recrear los elementos.

0

Crea un nuevo elemento, establece su innerHTML, que lo anexas al final de los elementos secundarios de los formularios.

Cuestiones relacionadas