我有一个多文件输入,我正在使用一些 javascript 来处理它的更改事件。问题是,如果我选择一个文件,然后选择另一个同名文件,那么更改甚至不会被触发。
还有其他我可以使用的事件吗?我唯一的另一个想法(看到您无法使用 JavaScript 清除文件输入值)是从它们 DOM 中删除元素并在提交表单后创建一个新元素。
我有一个多文件输入,我正在使用一些 javascript 来处理它的更改事件。问题是,如果我选择一个文件,然后选择另一个同名文件,那么更改甚至不会被触发。
还有其他我可以使用的事件吗?我唯一的另一个想法(看到您无法使用 JavaScript 清除文件输入值)是从它们 DOM 中删除元素并在提交表单后创建一个新元素。
如果你使用 JQuery 来绑定它
$('#yourIdOfInputFile').bind('change',function() {
//here goes your code
});
然后它被触发 - 总是!
这发生在 IE 和 Crome,而不是 Firefox。当文件相同时,更改事件不会触发。我建议您在每次文件更改时创建一个新输入。由于此解决方法只需将 替换为input
新的空输入,因此第二次选择文件时,无论文件是什么,change
都会触发事件。
http://browser.colla.me/show/file_input_triggers_no_change_event_if_file_names_are_the_same