Foros del Web » Programando para Internet » Javascript »

Files.length no funciona

Estas en el tema de Files.length no funciona en el foro de Javascript en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 28/10/2015, 09:21
 
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
  #2 (permalink)  
Antiguo 28/10/2015, 11:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Files.length no funciona

Lo he probado tal cual y funciona correctamente, tanto tomando al elemento por su identificador como mediante el argumento que le envías a la función. Quizá sea un problema de caché del navegador el que está generándote esto.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 29/10/2015, 04:28
 
Fecha de Ingreso: marzo-2015
Mensajes: 42
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Files.length no funciona

Gracias por la respuesta, Alexis.

Al final he hecho una chapucilla y he puesto el "this.files" en una variable global para poder llamarla desde otras funciones...

Lo que yo quería era, desde otra función distinta al onchange, obtener el número de archivos subidos en el mismo momento en que se ejecuta la función, pero voy a tener que apañarme con eso.

Etiquetas: funcion, input
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:25.