這是我在Chrome中注意到的奇怪事情。如果用戶選擇一個文件,然後再次選擇同一個文件再次打開文件對話框,Chrome瀏覽器不會在firefox執行時觸發onchange事件。輸入文件onchange事件未在chrome中被觸發
有人注意到它嗎?
這是我在Chrome中注意到的奇怪事情。如果用戶選擇一個文件,然後再次選擇同一個文件再次打開文件對話框,Chrome瀏覽器不會在firefox執行時觸發onchange事件。輸入文件onchange事件未在chrome中被觸發
有人注意到它嗎?
這是Chrome的一個已知功能,快速的Google on the topic會帶來一些有趣的討論。
這對我來說很有意義的change
事件不會火,因爲一切都沒有改變(你選擇同一文件)
至於你的問題,正是你問?你正在尋找一種方法來改變這種行爲,或者你只是想知道我們是否也注意到了這一點?
如果你想解決這個問題,你可以簡單地在你的Javascript中創建一個新的文件輸入並替換前一個。這樣你的change
事件是保證射擊。
function resetFileInput($element) {
var clone = $element.clone();
$element.replaceWith(clone);
}
然後用:
$('#element_id').on('change', function(){
...
});
運作良好,對我來說!
一個更簡單的方法來重置爲我的作品以及輸入文件:
document.getElementById('idOfInput').value = '';
請注意,這在IE(IE8-IE11 +)中不起作用,因爲文件輸入標記爲「只讀」。另一種方法是將它[包裝在窗體中並重置窗體](http://stackoverflow.com/a/14587296/1030702)。 – Bob
其實我輸入值正好被設置爲空字符串,並將其重新設置,因此,如果用戶將選擇相同的文件我會得到事件。我不得不說,我不同意你這樣的預期。我應該得到一些通知,說明用戶選擇了一個文件(任何文件,即使它是同一個文件),但是在這種方法中,你(程序員)不知道這個動作發生了。 – Amir