2013-04-12 73 views
4

當用戶選擇要上傳的文件並點擊「打開」時,有沒有辦法綁定事件,我想在用戶點擊打開時觸發事件。文件上傳事件綁定

enter image description here

+1

該字段的更改事件應在該情況下觸發 –

+0

可能被複制。檢查這個http://stackoverflow.com/questions/4096335/jquery-start-a-function-after-open-button-from-input-file-is-pressed – RicardoGonzales

回答

5

在這種情況下,change事件將被解僱。

如果你有這樣的HTML:

<input type="file" id="fileInput" /> 

然後用這個JS:

window.onload = function() { 
    document.getElementById("fileInput").onchange = function() { 
     // this.value 
    }; 
}; 

(使用addEventListener/attachEvent,而不是設置onclick屬性的選項)

內處理程序,您可以使用this.value來獲取所選文件。

當然,使用jQuery,您可以使用:

$(document).ready(function() { 
    $("#fileInput").on("change", function() { 
     // this.value OR $(this).val() 
    }); 
}); 

注:window.onload$(document).ready處理程序使用,以確保該元素是可用的。當然,這個事件可能比實際需要的時間晚得多,因爲它們等待頁面上的所有元素都準備好(並且window.onload等待更長的時間來加載圖像等)。一個選項是在頁面上的元素之後或在<body>的末尾立即綁定onchange處理程序。

+1

'窗口'''onload'包裝是寧可如果腳本放置在頁面的末尾/輸入元素之後,則不需要。 '=]' –

+1

@FabrícioMatté確實如此,但我不喜歡這樣做,它基本上與身體末端一樣(對於'window.onload'有點不同,但仍然)。我並不完全認爲這個問題重要。儘管如此,我會在答案中加入一些關於它的珍聞。謝謝 :) – Ian