Foros del Web » Programando para Internet » Javascript »

Ayuda con createElement

Estas en el tema de Ayuda con createElement en el foro de Javascript en Foros del Web. Buenas. Necesitaria saber como podria crear un <input type="text">, un radiobutton y un checkbox con el createElement, he estado mirando por internet y foros y ...
  #1 (permalink)  
Antiguo 07/01/2010, 17:01
 
Fecha de Ingreso: diciembre-2003
Ubicación: Universidad de la Vida
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 1
Ayuda con createElement

Buenas.

Necesitaria saber como podria crear un <input type="text">, un radiobutton y un checkbox con el createElement, he estado mirando por internet y foros y no encuentro nada claro. Gracias de antemano por vuestra ayuda.
__________________
GardBeat

Última edición por GardBeat; 07/01/2010 a las 17:02 Razón: modificacion ...
  #2 (permalink)  
Antiguo 07/01/2010, 17:22
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Ayuda con createElement

que tal , no se si te servira de algo ...
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Documento sin t&iacute;tulo</title>
</
head>
<
script  type="text/javascript">
function 
crear() {
document.getElementById('caja').innerHTML ''
'<input type="text"></input>';
}
</script>
<body>
<input name="crear input type='text' " type="button" value="crear input type='text"  onclick="crear();"/>
<div id="caja"></div>
</body>
</html> 
y lo puedes personalizar un poco ...

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Documento sin t&iacute;tulo</title>
</
head>
<
script  type="text/javascript">
function 
crear(tipo,id,donde,valor) {
if(
tipo == ){
document.getElementById(donde).innerHTML ''
'<input type="text" id="'+id+'" value ="'+valor+'"></input>';
}
if(
tipo == ){
document.getElementById(donde).innerHTML ''
'<input type="checkbox" id="'+id+'" value ="'+valor+'"></input>';
}
}
</script>
<body>
<input name="crear input type='text' " type="button" value="crear input type='text"  onclick="crear(1,'id_text','caja','nuevo input text');"/>
<input name="crear input type='checkbox' " type="button" value="crear input type='checkbox"  onclick="crear(2,'id_checkbox','caja','nuevo input checkbox');"/>
<div id="caja"></div>
</body>
</html> 
no se si sea tu caso , cualquier cosa comenta .
  #3 (permalink)  
Antiguo 07/01/2010, 17:29
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Ayuda con createElement

Saludos GardBeat.

Lo que debes hacer es crear tres elementos del tipo <input /> y posterioremente establecer a cada uno el atributo type según necesites.

Código PHP:
var inputText document.createElement('input');
var 
inputRadio document.createElement('input');
var 
inputCheck document.createElement('input');

inputText.setAttribute('type''text');
inputRadio.setAttribute('type''radio');
inputCheck.setAttribute('type''checkbox'); 
Éxitos.
  #4 (permalink)  
Antiguo 07/01/2010, 17:35
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Ayuda con createElement

Primero tenes que comprende que es cada cosa, asi entendes bien que es lo que estas creando. Veamos:

un "input" es un elemento del documento html. "Type" es un atributo de ese elemento "text" es el valor de ese atributo. Y asi sucesivamente y vale para cualquier etiqueta.

Teniendo en claro ese concepto:

Código HTML:
Ver original
  1. <a href="javascript:crear();">Crear elementos!</a>
  2.  
  3. <div id="contiene"></div>
  4.  
  5. <script type="text/javascript">
  6.  
  7. function crear(){
  8.  
  9. var div = document.getElementById("contiene");
  10.  
  11. var cajaTxt = document.createElement("input");
  12. cajaTxt.type="text";
  13. cajaTxt.value="Soy una caja de texto!";
  14.  
  15. var radio = document.createElement("input");
  16. radio.type="radio";
  17. radio.name="radio1";
  18. radio.value="algo";
  19.  
  20. var check = document.createElement("input");
  21. check.type="checkbox";
  22. check.name="check1";
  23. check.value="algo2";
  24.  
  25. div.appendChild(cajaTxt);
  26. div.appendChild(radio);
  27. div.appendChild(check);
  28.  
  29. }
  30.  
  31. </body>
  32. </html>
__________________
HV Studio
Diseño y desarrollo web
  #5 (permalink)  
Antiguo 07/01/2010, 17:45
 
Fecha de Ingreso: diciembre-2003
Ubicación: Universidad de la Vida
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con createElement

Ok, muchas gracias. Ya habia encontrado finalmente lo que buscaba que era el setAttribute, que no me acordaba. Ahora os vuelvo a lanzar otra pregunta, como puedo hacer para que me borre ahora los que he creado??

Le pongo un ejemplo que llevo:

Código Javascript:
Ver original
  1. function nuevo_text() {
  2.  
  3.     var text = document.createElement("input");
  4.     text.setAttribute('type','text');
  5.     text.setAttribute('name','text1');
  6.     text.setAttribute('value','Campo Texto');
  7.     document.body.appendChild(text);
  8.  
  9. }

Se que puede ser algo asi, pero no me funciona, asi que no es correcto:

Código Javascript:
Ver original
  1. var t = document.getElementById("input");
  2.     var t2 = t.getElementsByTagName("text1");
  3.     var nodo = t2[t2.length-1];
  4.     nodo.parentNode.removeChild(nodo);

Gracias de antemano.
__________________
GardBeat
  #6 (permalink)  
Antiguo 07/01/2010, 17:51
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Ayuda con createElement

Es recomendable que asignes un valor al atributo id para poder seleccionar más rápido los elementos:

Código PHP:
  function nuevo_text() {
 
    var 
text document.createElement("input");
    
text.setAttribute('type','text');
    
text.setAttribute('name','text1');
    
text.setAttribute('id','text1');
    
text.setAttribute('value','Campo Texto');
    
document.body.appendChild(text);
 
}

   var 
nodo document.getElementById("text1");
   
nodo.parentNode.removeChild(nodo); 

Éxitos
  #7 (permalink)  
Antiguo 07/01/2010, 18:11
 
Fecha de Ingreso: diciembre-2003
Ubicación: Universidad de la Vida
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con createElement

Gracias jseros, me ha servido de mucho, pero ahora me surge otra duda, tengo un text area, al cual lo creo de la siguiente manera:

Código Javascript:
Ver original
  1. var textAr = document.createElement("textarea");
  2.     document.body.appendChild(textArea);

Como puedo hacerle que se borre, gracias?? He probado a borrarlo directamente por textarea, pero no me funciona.

Gracias ... 1 saludo.
__________________
GardBeat
  #8 (permalink)  
Antiguo 07/01/2010, 18:21
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Ayuda con createElement

Si no lo identificas a través de un ID es muy complicado hacer algo con éste luego de insertarlo. Se podría lograr obteniendo la posición dentro del árbol del documento, pero la solución más elegante es establecer un atributo ID; luego seleccionarlo a través de getElementById para posteriormente borrarlo.

También puedes hacerlo a través de la variable a la que lo asignas y después de haberlo insertado.

Código PHP:
      var textArea document.createElement("textarea");
      
document.body.appendChild(textArea);

      
//....

      
document.body.removeChild(textArea); 

Éxitos
  #9 (permalink)  
Antiguo 07/01/2010, 18:27
 
Fecha de Ingreso: diciembre-2003
Ubicación: Universidad de la Vida
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con createElement

Muchas gracias de nuevo, jseros, he optado por la primera opcion.

1 Saludo.
__________________
GardBeat

Etiquetas: Ninguno
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 09:02.