Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2015, 09:21
Tusade
 
Fecha de Ingreso: marzo-2015
Mensajes: 42
Antigüedad: 9 años, 1 mes
Puntos: 2
Files.length no funciona

Tengo un input file multiple, y quiero sacar con javascript el Files.length, ¡pero no funciona cuando lo hago a través de un document.getElementById!

En cambio, cuando escribo "onchange='mostrar_subidas(this.files)'" sí que me funciona y eso es lo que no entiendo!

Código HTML:
Ver original
  1. <form><input type='file' onchange='mostrar_subidas(this.files)' multiple name='input_archivos_adjuntos[]' id='input_archivos_adjuntoss' style='opacity: 0; outline: medium none; cursor: pointer; height: 20px; margin: 0px 10px 0px 8px; top: 0px; right: 0px; position: absolute;' title='Seleccionar un archivo desde su PC'/></form>

Código Javascript:
Ver original
  1. //Esta función muestra los archivos adjuntos
  2. function mostrar_subidas(elemento) {
  3.  
  4.     var archivos = document.getElementById('input_archivos_adjuntoss');
  5.  
  6.     archivos.style.opacity="1"; //Hago esto para comprobar que, efectivamente, estoy seleccionado el input correcto
  7.  
  8.     archivos = archivos.files;
  9.  
  10.     alert(archivos.length); //Siempre me devuelve 0, no importa cuantos archivos suba...
  11.  
  12.     for (var i = 0; i < archivos.length; i++){
  13.          alert(archivos[i].name); //No me sale nada...
  14.     }
  15.  
  16.     alert(elemento.length); //Aquí SÍ me funciona
  17. }

Eso es lo que NO entiendo... Cuando invoco al files.length mediante un this.files, SÍ me funciona...

Pero cuando hago un document.getElementById('input_archivos_adjuntoss' ).files, no me