2012-07-26 56 views
1

我覺得有點愚蠢的發佈,因爲它看起來很直截了當,因爲我一直在閱讀,但我不知道爲什麼我總是看到1作爲files.length的值。使用HTML5處理多個文件

<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>   

回答

1

更改警報線:

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

這工作,因爲你正在嘗試做的就是將文件屬性,該屬性是FileList對象的輸入DOM元素。然後你需要FileList的length attribute這將告訴你有多少個對象被選中。您首先使用jQuery選擇輸入元素,但是像$(「#files」)這樣的jQuery選擇的結果是一個jQuery集合,您希望底層DOM對象用於輸入元素,因爲只有它具有files屬性。每個jQuery對象都僞裝成一個數組,因此您可以使用標準數組解引用來獲取底層DOM元素。 (參見:http://api.jquery.com/get/

Try It!

+0

真棒,感謝您的解釋! – user1281426 2012-07-26 17:27:51