Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] error al eliminar input con removeChild

Estas en el tema de error al eliminar input con removeChild en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 31/03/2016, 12:19
 
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!
  #2 (permalink)  
Antiguo 31/03/2016, 13:21
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: error al eliminar input con removeChild

Estás pasando elimina+i como argumento del método .removeChild(), por eso obtienes ese mensaje de error. También estás olvidando que deberás eliminar al botón que eliminas al elemento.

Esto tampoco tiene sentido:
Código Javascript:
Ver original
  1. contene.appendChild(nuevoInput) + contene.appendChild(nuevoButton) + contene.appendChild(salto);

Son tres instrucciones que no pueden concatenarse ni sumarse. Cada una debe ir en una línea distinta, con su respectivo punto y coma.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: formulario, funcion, html, input, removechild, valor
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 14:14.