He creado un formulario para actualizar una BD con discos de música. Cada disco de entre todos los que hay en el mundo tiene un número distinto de pistas, por lo que he decidido crear un primero input para la primera pista, y luego, un botón que añada un nuevo input para cada pista que se desee poner.
Los campos imput tienen una id="track1", "track2", "trackn".
El código del formulario:
Código HTML:
Ver original
La función que añade campos input:
Código Javascript:
Ver original
var control=1; function newTrack() { var nums=(2,3,4,5,6,7,8,9); var objeto=document.getElementById('tracklist'); objeto.innerHTML+='<input type="text" name="track"'+nums[control]+'"><br>'+"\n"; control++; }
La función que los comprueba:
Código Javascript:
Ver original
if(document.getElementById('tracklist').value=='') { alert('Jo, tio, ponme al menos una canción en el disco'); return false; } else { var obj = document.getElementById('tracklist').childNodes; var u; //El alert comentado lo puse para comprobar si podía acceder a los childNodes. //Solo puedo acceder al primero del array, incluso después de haber creado más //alert(document.getElementById('tracklist').childNodes[0].name); for(u==1;u < obj;u++) { //Este alert es para comprobar que se puede acceder a los childNodes //La finalidad de la función es comprobar con un IF si su valor es una cadena vacía. alert(document.getElementById('tracklist').childNodes[u].name); } }
El problema: Solo puedo acceder al primer nodo, aun habiendo creado más con la función newTrack(); .
¿No puedo acceder a ellos porque no están creados en el momento de cargar la página, o es un error en alguna función? Y, en el caso de sí poder acceder a ellos, ¿cómo puedo hacerlo?
Muchas gracias.