js清空input file的值

今天在做选择本地图片上传的功能时遇到一个问题,第一次选择图片完成会触发onchange事件,获取文件后动态在界面上创建img标签展示,这个过程没有问题,问题出在当把创建的img元素节点删除后,再点file控件选中同一个文件后发现图片并没有被重新创建出来。 
分析了原因,是因为上一次file里选择的文件路径值与本次选择的文件路径值是一样的,值没有改变所以导致file不会触发onchange事件。 
解决这个问题的思路是每次创建完img后把file的路径值清空,但浏览器的安全机制规定不可以直接用js修改file的value为有效值,解决方法是设置file的value为空字符,或者把file的html重新初始化来解决清空的问题。

解决办法:

var file = document.getElementById('file');
file.value = ''; //虽然file的value不能设为有字符的值,但是可以设置为空值
//或者
file.outerHTML = file.outerHTML; //重新初始化了file的html
原文地址:https://www.cnblogs.com/hzcya1995/p/13317497.html