el codigo que tienes no te funciona porque: (1) estas buscando todos los elementos inputs dentro del formulario cuando solo quieres aquellos creados dinamicamente, y (2)
Cita: solamente me borraba cuando .removeChild(borrainput[j]); fuese [0], no entendi por que
sucede que
getElementsByTagName devuelve una coleccion de elementos. cuando uno de esos elementos se remueve del documento (.removeChild) la coleccion tambien se altera. o sea, llega un punto en que la variable que sirve como iterador (en tu caso la
j), no representa un elemento de la coleccion.
a continuacion un ejemplo donde en lugar de utilizar una coleccion de elementos, utiliza un elemento en particular (<div id="
dynamic">) donde se van agregando los elementos creados.
Código:
<script type="text/javascript">
function create(quantity){
var div = document.getElementById("dynamic");
while(div.firstChild)div.removeChild(div.firstChild); // remover elementos;
for(var i = 1, quantity = Number(quantity); i <= quantity; i++){
var p = document.createElement("p");
var input = document.createElement("input");
var text = document.createTextNode("Campo " + i + ": ");
input.setAttribute("name", "arre" + i);
input.setAttribute("size", "2");
input.className = "input";
p.appendChild(text);
p.appendChild(input);
div.appendChild(p);
}
}
</script>
<form name="datos">
<p>Cantidad de campos: <input type="text" name="quantity" /> <input type="button" value="Crear" onclick="create(this.form.quantity.value)" /></p>
<div id="dynamic"></div></form>
que quede claro. no digo que esta mal utilizar la coleccion de elementos, sigue siendo una alternativa valida. simplemente queria desviarte por otra alternativa para que no tuvieras mayores problema.