Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/09/2010, 17:43
Avatar de Alun
Alun
 
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Comprobar un número indefinido de campos

Hola, Adler, gracias por contestar:

Ya vi aquel post, antes de postear esto. En el código ese, haces más o menos lo que yo tengo. Mi problema es más bien que al pinchar en el botón de añadir nuevos inputs, me aparecen bien en la página, pero no puedo acceder a ellos, me salta Undefined.

Por otra parte, me he fijado que en mi código hay un pequeño fallo, en lo que aquí es la línea 13 del archivo de comprobación:

for(u==1;u < obj;u++)

La he cambiado, dejándola así:

Código Javascript:
Ver original
  1. for(u=1;u < obj.length;u++)//pongo length para comprobar el número de valores del array

Igualmente, sigue ocurriendo que por cada valor del array, aparecen tres alerts: uno en el que pone "track", cuando debería poner "trackn" (donde n es un número), y luego otros dos en los que pone "undefined".

He decidido hacer otra cosa: comienzo con cero inputs, y un botón en el que se pregunta el número de pistas, para crear ese número de inputs, solo que ahora hay un bucle FOR que nunca llega a ejecutarse:

Código Javascript:
Ver original
  1. var tracks=parseInt(prompt('¿Cuántas pistas tiene el disco?'));
  2. if(!parseInt(tracks))
  3. {
  4.  alert('En números, por favor');
  5.  newTrack();
  6. }
  7. else if(parseInt(tracks)&&tracks > 30)
  8. {
  9.  alert('30 es un buen número para las canciones. Si el disco tiene más, pon las 30 primeras');
  10.  newTrack();
  11. }
  12. else
  13. {
  14.  alert('al menos llega hasta aquí');
  15.  for(var w=1;w == tracks; w++)
  16.  {
  17.   alert('Este alert No aparece en ningún momento, y tampoco se crea abajo el input');
  18.   document.getElementById('tracklist').innerHTML='<input type="text" name="track'+w+"\"><br>\n";
  19.  }
  20.  alert('Este alert sí aparece');
  21. }

Simplemente, el bucle no existe en el código... .

¿Alguna idea de cómo hacer lo que pretendo, pero que funcione?

Muchas gracias!