Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/04/2010, 04:47
Astroscuro
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: boton eliminar

Hola,

gracias por la respuesta, pero me parece que el atributo disabled desactiva siempre sea lo que sea que tenga entre las comillas, como si no las tiene, o al menos hace eso en mi explorador, xD

Te voy a poner el código tal y como lo tengo por el momento y luego te comento las cosas que no entiendo:

Código Javascript:
Ver original
  1. document.getElementById("Eliminar").disabled=true;
  2.     if (pos > 0) {
  3.         document.getElementById("Eliminar").disabled=false;
  4.     }
  5.  
  6. var pos=0;
  7.  
  8. function anadir(obj,boton) {
  9.   //uff
  10.   pos++;
  11.  
  12. //  form=document.getElementByName("form");
  13.   form=document.getElementById("form");
  14.    
  15.   //crear combo-box
  16.   sel=document.createElement('select');
  17.   sel.setAttribute("name","tipo_in" + pos);
  18.   option=document.createElement('option');
  19.   option.value="0";
  20.   option.innerHTML="(Por favor, escoja:)";
  21.   sel.appendChild(option);
  22.  
  23.   option=document.createElement('option');
  24.   option.value="1";
  25.   option.innerHTML="campo1";
  26.   sel.appendChild(option);
  27.  
  28.   option=document.createElement('option');
  29.   option.value="2";
  30.   option.innerHTML="campo2";
  31.   sel.appendChild(option);
  32.  
  33.   option=document.createElement('option');
  34.   option.value="3";
  35.   option.innerHTML="campo3";
  36.   sel.appendChild(option);
  37.  
  38.   option=document.createElement('option');
  39.   option.value="4";
  40.   option.innerHTML="campo4";
  41.   sel.appendChild(option);
  42.  
  43.   option=document.createElement('option');
  44.   option.value="5";
  45.   option.innerHTML="campo5";
  46.   sel.appendChild(option);
  47.  
  48.   form.appendChild(sel);
  49.   obj.insertBefore(sel,boton);
  50.  
  51.   //crear text nombre
  52.   elem=document.createElement('input');
  53.   elem.setAttribute("type","text");
  54.   elem.setAttribute("size","30");
  55.   elem.setAttribute("maxlength","30");
  56.   elem.setAttribute("name","nombre_in" + pos);
  57.   form.appendChild(elem);
  58.   obj.insertBefore(elem,boton);
  59.  
  60.   //crear text apellido1
  61.   elem=document.createElement('input');
  62.   elem.setAttribute("type","text");
  63.   elem.setAttribute("size","30");
  64.   elem.setAttribute("maxlength","30");
  65.   elem.setAttribute("name","apellido1_in" + pos);
  66.   form.appendChild(elem);
  67.   obj.insertBefore(elem,boton);
  68.  
  69.  
  70.   //crear text apellido2
  71.   elem=document.createElement('input');
  72.   elem.setAttribute("type","text");
  73.   elem.setAttribute("size","30");
  74.   elem.setAttribute("maxlength","30");
  75.   elem.setAttribute("name","apellido2_in" + pos);
  76.   form.appendChild(elem);
  77.   obj.insertBefore(elem,boton);
  78.  
  79.   //crear salto de linea  
  80.   elem=document.createElement('br');
  81.   obj.insertBefore(elem,boton);
  82. }
  83.  
  84. function eliminar() {
  85. //  form=document.getElementByName("form");
  86.     form=document.getElementById("form");
  87.    
  88.     kill=document.getElementByName("tipo_in" + pos);
  89.     form.removeChild(kill);
  90.        
  91.     kill=document.getElementByName("nombre_in" + pos);
  92.     form.removeChild(kill);
  93.    
  94.     kill=document.getElementByName("apellido1_in" + pos);
  95.     form.removeChild(kill);
  96.    
  97.     kill=document.getElementByName("apellido2_in" + pos);
  98.     form.removeChild(kill);
  99.    
  100.     pos--;
  101. }
Código HTML:
Ver original
  1. <form action="llega.php" name="form" id="form" method="post">
  2. <p>A&NtildeDIDOS:</p>
  3. <input type="button" value="A&ntilde;adir" onClick="anadir(this.form,this)"/>
  4. <input type="button" value="Eliminar" id="Eliminar" onClick="eliminar()"/>
  5. <input type="submit" value="Enviar" onClick="enviar()"/>
  6. </form>
  7. <br />
  8. </body>
  9. </html>

De entrada, así como está el botón añadir cumple con su función

No entiendo porque no funciona el getElementByName("form"), es decir no deja ejecutar la función del botón, y si parece funcionar el getElementById("form")

Claro que si las cosas son como parecen la función eliminar() debería funcionar y no lo hace.

Lo que tampoco me sale es tener desactivado el botón eliminar de primeras o si mi contador es 0. Esto he pensado que debería ser así para que no me hagan pulsaciones en eliminar y me pongan el valor del contador en negativo; por que si luego añaden un campo este será negativo. Porque yo tengo que recoger luego los datos desde 0 hasta el valor de pos. Bueno... que eso es otra cosa que me trae de cabeza...

Gracias!