2015-12-08 20 views
0

根據此:http://jsfiddle.net/Shiboe/yuK3r/6/我可以做到這一點沒有任何問題。 但是, 我有我的輸入元素的多個屬性,如果我想上傳例如8000文件catchEvent()函數打印出0.這個問題的任何解決方案?如何檢測文件是否從文件對話框中選擇

$(document).ready(function(){ 
 
\t $("#testInput").on('click', function(){ 
 
\t \t run(); 
 
\t }); 
 
\t 
 
\t function run(){ 
 
\t \t document.body.onfocus = catchEvent; 
 
\t } 
 
\t 
 
\t function catchEvent(){ 
 
\t \t console.log(document.getElementById("testInput").files.length); 
 
\t \t document.body.onfocus = null; 
 
\t } 
 
})
<input id="testInput" type="file" name="test" multiple="multiple" />

+0

爲什麼你聽'focus'事件?是否有意義? – hindmost

回答

0

您可以獲取文件信息如下代碼:

godzilla.onchange= function(){ 
    var files = $(this)[0].files; 
    if (files.length > 0){ 
     console.log("file selected="+files.length); 
    } 
}; 
+0

這不是一個解決方案。如果我上傳8000個文件,我必須等待幾秒鐘才能獲得一些價值,否則我會得到空值。我可以這樣做:setTimeout(function(){ } ,1000); document.body.onfocus = null;但它不是一個解決方案...我想在文件上傳時顯示「加載」文本,這就是爲什麼我找到解決這個問題的原因。 – johndorian

+0

我已經更新了我的答案。 – bluesky

+0

好的,但如果用戶在文件對話框中點擊「取消」會怎麼樣? onchange事件不會執行。 – johndorian

相關問題