form表单相同文件多次点击上传不了的问题

利用 form 表单提交文件时,如果第一次上传失败,当你再次选择上次的文件时,发现 onchange 事件不能再次触发了,该如何解决呢?

1
2
3
4
5
6
7
8
<div class='test'>
<input type='file' id='test'>
</div>
<script>
document.getElementById('test').onchange = function(e){
console.log(e);
}
</script>

上述代码,当我们多次都选择同一个文件的时候,会发现不再触发了 onchange 方法,因为只有文件改变才会触发 change 方法。
因此你只需在 onchange 方法中,将 input 的 value 值清空即可。

1
2
3
4
5
document.getElementById('test').onchange = function(e){
//此处填写你需要执行的代码

this.value = '';
}