Foros del Web » Programando para Internet » Javascript »

crear un form de forma dinámica con javascript

Estas en el tema de crear un form de forma dinámica con javascript en el foro de Javascript en Foros del Web. buenas noches, con este código se genera un form pero el cierre del formulario no se traslada bien al código html de la página @import ...
  #1 (permalink)  
Antiguo 29/09/2014, 15:39
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 8 meses
Puntos: 2
crear un form de forma dinámica con javascript

buenas noches,

con este código se genera un form pero el cierre del formulario no se traslada bien al código html de la página

Código Javascript:
Ver original
  1. document.getElementById(nuesre).innerHTML += "<form id=\'" + nufobo + "\' name=\'" + nufobo + "\' class='esfobo' >";
  2.             document.getElementById(nuesre).innerHTML += "<input type='hidden' name='noarbo' value=\'" + event.target.responseText + "\' />";
  3.             document.getElementById(nuesre).innerHTML += "<input type='button' value='borrar' onclick='javascript:borrara(this.form,nua)'/>";
  4.             document.getElementById(nuesre).innerHTML += "</form>";

Código HTML:
Ver original
  1. <form id="nuarbo1" name="nuarbo1" class="esfobo"></form>
  2. <input type="hidden" name="noarbo" value="bano-minimalista-sanitarios-pared.jpg">
  3. <input type="button" value="borrar" onclick="javascript:borrara(this.form,nua)">
  #2 (permalink)  
Antiguo 29/09/2014, 16:04
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 6
Respuesta: crear un form de forma dinámica con javascript

Que te parece si lo haces con JQuery?

Solo incluye en tu pagina la libreria de jquery y escribe algo como esto:
Código Javascript:
Ver original
  1. var form = $("<form>");
  2. var input = $("<input>").attr("type","hidden").attr("name","noarbo").attr("value",event.target.responseText);
  3. $(form).append(input);
  4. $("#nuesre").append(form);
  5. //ETC ETC
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).
  #3 (permalink)  
Antiguo 29/09/2014, 16:14
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 8 meses
Puntos: 2
Respuesta: crear un form de forma dinámica con javascript

buenas noches,

también he probado de esta otra forma, pero en este caso en el html generado falta el evento onclick

Código Javascript:
Ver original
  1. var form    = document.createElement("form");
  2.             var diva    = document.getElementById(nuesre);
  3.             diva.appendChild(form);
  4.             form.id     = nufobo;
  5.             form.name   = nufobo;
  6.             var eun     = document.createElement("input");
  7.             eun.type    = "hidden";
  8.             eun.name    = "noarbo";
  9.             eun.value   = event.target.responseText;
  10.             form.appendChild(eun);
  11.             var edo     = document.createElement("input");
  12.             edo.type    = 'button';
  13.             edo.name    = 'enviar';
  14.             edo.value   = 'borrar';
  15.             edo.onclick = 'javascript:borrara(this.form,nua)';
  16.             form.appendChild(edo);

Código HTML:
Ver original
  1. <form id="nuarbo1" name="nuarbo1">
  2. <input type="hidden" name="noarbo" value="bano-minimalista-sanitarios-pared.jpg">
  3. <input type="button" name="enviar" value="borrar">
  4. </form>
  #4 (permalink)  
Antiguo 29/09/2014, 16:21
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 8 meses
Puntos: 2
Respuesta: crear un form de forma dinámica con javascript

hola jvier,

intento hacerlo con javascript
(no suelo usar jquery)

salu2.
  #5 (permalink)  
Antiguo 29/09/2014, 16:36
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 6
Respuesta: crear un form de forma dinámica con javascript

Entonces cambia tu codigo original:

Código Javascript:
Ver original
  1. document.getElementById(nuesre).innerHTML += "<form id=\'" + nufobo + "\' name=\'" + nufobo + "\' class='esfobo' >";
  2.             document.getElementById(nuesre).innerHTML += "<input type='hidden' name='noarbo' value=\'" + event.target.responseText + "\' />";
  3.             document.getElementById(nuesre).innerHTML += "<input type='button' value='borrar' onclick='javascript:borrara(this.form,nua)'/>";
  4.             document.getElementById(nuesre).innerHTML += "</form>";

por este:

Código Javascript:
Ver original
  1. document.getElementById(nuesre).innerHTML += "<form id=\'" + nufobo + "\' name=\'" + nufobo + "\' class='esfobo' >";
  2.             document.getElementById( nufobo).innerHTML += "<input type='hidden' name='noarbo' value=\'" + event.target.responseText + "\' />";
  3.             document.getElementById( nufobo).innerHTML += "<input type='button' value='borrar' onclick='javascript:borrara(this.form,nua)'/>";
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).
  #6 (permalink)  
Antiguo 30/09/2014, 04:38
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 8 meses
Puntos: 2
Respuesta: crear un form de forma dinámica con javascript

buenos días,

ninguna de las 2 opciones funcionan:

1. Insertando HTML, al dar click se genera un error: nua no está definido

Código Javascript:
Ver original
  1. document.getElementById(nuesre).innerHTML += "<form id=\'" + nufobo + "\' name=\'" + nufobo + "\' class='esfobo' ></form>";
  2. document.getElementById(nufobo).innerHTML += "<input type='hidden' name='noarbo' value=\'" + event.target.responseText + "\' />";
  3. document.getElementById(nufobo).innerHTML += "<input type='button' name='enviar' value='borrar' onclick='javascript:borrara(this.form,nua)'/>";
  4.  
  5. function borrara(form,nua)
  6. {
  7.     alert(nua);
  8. }

2. Manipulando el DOM para generar los elementos, en este caso el evento onclick no se añade al botón

Código Javascript:
Ver original
  1. var form    = document.createElement("form");
  2. var diva    = document.getElementById(nuesre);
  3. diva.appendChild(form);
  4. form.id     = nufobo;
  5. form.name   = nufobo;
  6. var eun     = document.createElement("input");
  7. eun.type    = "hidden";
  8. eun.name    = "noarbo";
  9. eun.value   = event.target.responseText;
  10. form.appendChild(eun);
  11. var edo     = document.createElement("input");
  12. edo.type    = 'button';
  13. edo.id      = 'eborra';
  14. edo.name    = 'enviar';
  15. edo.value   = 'borrar';
  16. edo.onclick = function() { borrara(this.form,nua); };
  17. form.appendChild(edo);

Código HTML:
Ver original
  1. <form id="nuarbo2" name="nuarbo2">
  2. <input type="hidden" name="noarbo" value="reforma-baño-sanitarios-diseño-pavimento-continuo-blanco-negro.jpg">
  3. <input type="button" id="eborra" name="enviar" value="borrar"></form>
  #7 (permalink)  
Antiguo 30/09/2014, 04:49
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 8 meses
Puntos: 2
Respuesta: crear un form de forma dinámica con javascript

hola,

me he precipitado, la SEGUNDA opción si funciona, sin embargo el navegador (chrome) no incluye la función en el html generado. Y al hacer click se ejecuta la función y pasan los parámetros.

Por lo tanto, si a alguién le sirve, esta es la SOLUCIÓN:

Para aclarar un poco el código:
- nuesre (variable) id de un div definido con anterioridad donde se inserta el form. Se puede definir como una cadena.
- nufobo (variable) id y nombre que se asigna al form. Se puede definir como una cadena.
- event.target.responseText respuesta de la petición ajax con XMLhttpRequest

Código Javascript:
Ver original
  1. var form    = document.createElement("form");
  2. var diva    = document.getElementById(nuesre);
  3. diva.appendChild(form);
  4. form.id     = nufobo;
  5. form.name   = nufobo;
  6. var eun     = document.createElement("input");
  7. eun.type    = "hidden";
  8. eun.name    = "noarbo";
  9. eun.value   = event.target.responseText;
  10. form.appendChild(eun);
  11. var edo     = document.createElement("input");
  12. edo.type    = 'button';
  13. edo.id      = 'eborra';
  14. edo.name    = 'enviar';
  15. edo.value   = 'borrar';
  16. edo.onclick = function() { borrara(this.form,nua); };
  17. form.appendChild(edo);



un saludo.

Última edición por evoarte; 30/09/2014 a las 04:58

Etiquetas: form, forma, formulario, html, input
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 17:43.