码迷,mamicode.com
首页 > Web开发 > 详细

js清空input file的值

时间:2020-09-14 18:54:29      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:功能   document   界面   选择   exception   pretty   需要   ati   lan   

原文:js清空input file的值

 

在做选择本地图片上传的功能时遇到一个问题,第一次点file按钮选择图片完成会触发onchange事件,获取文件后动态在界面上创建img标签展示,但把创建的img元素节点删除后,再点file按钮选择同一个文件后发现图片并没有被重新创建出来。

 

分析了原因:

因为上一次选择的文件与本次选择的是同一个文件,两次的路径值相同,值没有改变所以导致file不会触发onchange事件,因此需要每次创建完img后重置file的value或者重置file的dom来解决这个问题。

 

解决方法一:
每次创建完img后把file的value值重置为空字符串

var file = document.getElementById(‘file‘);
file.value = ‘‘; //file的value值只能设置为空字符串

 

注意:浏览器的安全机制不允许直接用js修改file的value为空字符串以外的值,强制修改会报以下错误:

VM4061:1 Uncaught DOMException: Failed to set the ‘value’ property on ‘HTMLInputElement’: This input element accepts a filename, which may only be programmatically set to the empty string.

 

解决方法二:
每次创建完img后把file的outerHTML重置 (我自己实验这种方法并不奏效)

var file = document.getElementById(‘file‘);
file.outerHTML = file.outerHTML; //重置了file的outerHTML

 

 

 

 

 

js清空input file的值

标签:功能   document   界面   选择   exception   pretty   需要   ati   lan   

原文地址:https://www.cnblogs.com/jeacy/p/13595321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!