Ver Mensaje Individual
  #10 (permalink)  
Antiguo 26/07/2009, 21:16
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 1 mes
Puntos: 1485
Respuesta: Agregar elementos de formulario con una variable

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.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 26/07/2009 a las 21:28