Ver Mensaje Individual
  #9 (permalink)  
Antiguo 08/12/2009, 11:18
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Crear y remover inputs

Pensaba que solo haría falta este trozo de código

Código javascript:
Ver original
  1. var Handler = {
  2. add: function(elem, event, handler, capture){
  3.     try{
  4.     elem.addEventListener(event, handler, capture);
  5.     } catch(error){
  6.     elem.attachEvent('on' + event, handler);
  7.     }
  8. },
  9.  
  10. remove: function(elem, event, handler, capture){
  11.     try{
  12.     elem.removeEventListener(event, handler, capture);
  13.     } catch(error){
  14.     elem.detachEvent('on' + event, handler);
  15.     }
  16. }
  17. } // Handler;

Pero también hace falta todo el javascript price.js para conseguir el efecto, vaya si que es complicado....

Trasteando un poco he conseguido sacarlo sin utilizar tu código zerokilled. Mira que te parece.

¿Podrías simplificarlo??

Código html:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html>
  3. <title>Crear y remover inputs</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. body, td, th, div, p {
  6. color:#000000;
  7. font-family:"Lucida Grande",Verdana,Arial,Helvetica,sans-serif;
  8. font-size:small;
  9. }
  10. input {
  11. margin:0.3em;
  12. }
  13. a.removelink {
  14. background:transparent url(delete.png) no-repeat scroll 4px 0;
  15. color:#999999;
  16. font-size:0.9em;
  17. padding:1px 0 1px 24px;
  18. text-decoration:none;
  19. }
  20. a.addlink {
  21. background:transparent url(add.png) no-repeat scroll left top;
  22. color:#999999;
  23. font-size:0.9em;
  24. padding:1px 0 1px 20px;
  25. text-decoration:none;
  26. cursor:pointer;
  27. }
  28. <script type="text/javascript">
  29. <!--
  30. num=0;
  31. function crear(obj) {
  32.  num++;
  33.  fi = document.getElementById('productos');
  34.  contenedor = document.createElement('div');
  35.  contenedor.id = 'div'+num;
  36.  fi.appendChild(contenedor);
  37.  
  38.  // primer input
  39.  ele = document.createElement('input');
  40.  ele.name = '_default_host[]';
  41.  ele.className = 'cajatexto';
  42.  ele.size = '5';
  43.  contenedor.appendChild(ele);
  44.  
  45.   // segundo input
  46.  ele = document.createElement('input');
  47.  ele.name = '_default_host[]';
  48.  ele.className = 'cajatexto';
  49.  ele.size = '30';
  50.  contenedor.appendChild(ele);
  51.  
  52.   // tercer input
  53.  ele = document.createElement('input');
  54.  ele.name = '_default_host[]';
  55.  ele.className = 'cajatexto';
  56.  ele.size = '5';
  57.  contenedor.appendChild(ele);
  58.  
  59.   // cuarto input
  60.  ele = document.createElement('input');
  61.  ele.name = '_default_host[]';
  62.  ele.className = 'cajatexto';
  63.  ele.size = '5';
  64.  contenedor.appendChild(ele);
  65.  
  66.  // boton eliminar
  67.  ele = document.createElement('a');
  68.  ele.href = '#';
  69.  ele.name = 'div'+num;
  70.  ele.onclick = function () {borrar(this.name)}
  71.  ele.className = 'removelink';
  72.  ele.innerHTML = 'Eliminar';
  73.  contenedor.appendChild(ele);
  74. }
  75. function borrar(obj) {
  76.  fi = document.getElementById('productos');
  77.  fi.removeChild(document.getElementById(obj));
  78. }
  79. -->
  80.  
  81. </head>
  82. <form method="post" action="#">
  83. <div id="productos"></div>
  84. <div><a title="Add another field" class="addlink" onclick="crear(this)">Añadir</a></div>
  85. </form>
  86. </body>
  87. </html>


Salu2!