Domanda

Sento un po 'sciocco postare questo, come sembra piuttosto semplice da quello che ho letto, ma non so perché sto sempre vedendo 1 come valore per files.length.

<html>
<head>
<script src="http://code.jquery.com/jquery-1.7.2.js" type="text/javascript"></script>
<script>
    $(document).ready(function() {
        var button = $('#button');
        button.click(function(){    
           var files = $('#files');
           alert(files.length);
        });
     });
</script>
</head>
<body>
  <form>
    <input type="file" id="files" multiple="" />
    <input type="button" id="button" value="Upload" />
  </form>
</body>
</html>         
.

È stato utile?

Soluzione

Modifica la linea di avviso su:

alert(files[0].files.length);
.

funziona perché ciò che stai cercando di fare è ottenere l'attributo dei file dell'elemento DOM INPUT che è il FileList Object. Allora vuoi il Attributo lunghezza of the of the Filelist che ti dirà quanti Gli oggetti sono stati selezionati. Si seleziona per la prima scelta dell'elemento di input con jQuery, tuttavia il risultato di una selezione jQuery come $ ("file #") è una collezione jQuery, si desidera l'oggetto DOM sottostante per l'elemento di ingresso perché solo l'attributo dei file. Ogni oggetto jquery mascherato come array in modo da poter utilizzare Dreferencing della matrice standard per ottenere l'elemento DOM Sounding. (Vedi: http://api.jquery.com/get/ )

Provalo!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top