Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2016, 12:19
webtexcoco
 
Fecha de Ingreso: febrero-2016
Mensajes: 43
Antigüedad: 8 años, 2 meses
Puntos: 2
error al eliminar input con removeChild

hola ando aprendiendo javascript ojala puedan aclararme un poco

estoy trabajando un formulario que me agrega mas inputs según los que deba registrar el usuario (createElement).

Lo que estoy tratando de hacer y no me queda es la funcionalidad de eliminar el input text que fue creado por el usuario.

Mi código javascript lo tengo así
(por si es que debe eliminar un input text)

Código Javascript:
Ver original
  1. var i = 0;
  2. function addInput(datoInput,nombre,donde){
  3.     i++;
  4.     var contene = document.getElementById(donde);
  5.     var salto = document.createElement('br');
  6.     var nuevoInput = document.createElement('input');
  7.     var nuevoButton = document.createElement('input');
  8.     nuevoInput.type = 'text';
  9.     nuevoInput.id = 'idCarac' + i;
  10.     nuevoInput.value = 'idCarac' + i;
  11.     nuevoInput.name = datoInput;
  12.     nuevoInput.size = '10';
  13.     nuevoInput.placeholder = nombre;
  14.     nuevoInput.required = 'required';
  15.     nuevoButton.type = 'button';
  16.     nuevoButton.value = '-';
  17.     nuevoButton.name = 'eliminar';
  18.     nuevoButton.onclick = function(){borra();};
  19.     function borra(){
  20.        var elimina = document.getElementById("idCarac"+i);
  21.        elimina.parentNode.removeChild(elimina+i);
  22.     }
  23.     contene.appendChild(nuevoInput) + contene.appendChild(nuevoButton) + contene.appendChild(salto);
  24. }
  25.  
  26. function activaCampo(valor1,valor2,valor3){
  27.     var checabox = document.getElementById(valor1);
  28.     if(checabox.checked){
  29.         document.getElementById(valor2).removeAttribute('disabled', 'disabled');
  30.         document.getElementById(valor3).removeAttribute('disabled', 'disabled');
  31.         document.getElementById(valor2).setAttribute('required', 'required');
  32.         document.getElementById("btnenvia").removeAttribute('disabled', 'disabled');
  33.     }else{
  34.         document.getElementById(valor2).setAttribute('disabled', 'disabled');
  35.         document.getElementById(valor3).setAttribute('disabled', 'disabled');
  36.         document.getElementById("btnenvia").setAttribute('disabled', 'disabled');
  37.     }
  38. }

pretendo que la función borra sea la que elimine el input especifico al que el usuario le de click con el input borrar.

al darle click al boton la consola me arroja

Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'.

Aquí mi html
Código HTML:
Ver original
  1. <p>
  2.     <input type="checkbox" id="btn1" onclick="activaCampo('btn1','tinta','tintamas')">Tinta
  3.     <input size="7" id="tinta" type="text" name="datoTinta[]" placeholder="Tinta" disabled>
  4.     <input type="button" id="tintamas" value="+" onclick="addInput('datoTinta[]','Nuevo tinta','inputTinta')" disabled>
  5. </p>
  6. <div id="inputTinta"></div>
  7. <p>
  8.     <input type="checkbox" id="btn2" onclick="activaCampo('btn2','papel','papelmas')">Papel
  9.     <input size="7" id="papel" type="text" name="nombrePapel[]" placeholder="Papel" disabled>
  10.     <input type="button" id="papelmas" value="+" onclick="addInput('nombrePapel[]','Nuevo papel','inputPapel')" disabled>
  11. </p>
  12. <div id="inputPapel"></div>

que me falta?
que estoy haciendo mal? :(

y disculpen si estoy haciendo una tarugada pero ojala puedan aclararme soy muy verde todavia en javascript

aqui mi ejemplo funcionando

[URL="http://codepen.io/cassini/pen/aNyjyB"]http://codepen.io/cassini/pen/aNyjyB[/URL]

Muchas gracias por tu ayuda!