js清空input file的值

js清空input file的值今天在做选择本地图片上传的功能时遇到一个问题,第一次选择图片完成会触发onchange事件,获取文件后动态在界面上创建img标签展示,这个过程没有问题,问题出在当把创建的img元素节点删除后,再点file控件选中同一个文件后发现图片并没有被重新创建出来。分析了原因,是因为上一次file里选择的文件路径值与本次选择的文件路径值是一样的,值没有改变所以导致file不会触发onchange事件。解

大家好,又见面了,我是你们的朋友全栈君。

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

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

方案一

每次创建完img后把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.

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

方案二

每次创建完img后把file的outerHTML重置

var file = document.getElementById('file');
file.outerHTML = file.outerHTML; //重置了file的outerHTML
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131702.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • shell脚本——xsync

    shell脚本——xsyncxsync脚本基于rsync工具,rsync远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点,它只是拷贝文件不同的部分,因而减少了网络负担。rsync-rvl$pdir/$fname$user@hadoop$host:$pdir常用参数:-r,–recursive对子目录以递归模式处理-R,–relativ…

    2022年5月31日
    56
  • poj 4044 Score Sequence(暴力)

    poj 4044 Score Sequence(暴力)

    2021年12月4日
    39
  • 解决More than one file was found with OS independent path ‘lib/armeabi-v7a/libRSSupport.so‘

    解决More than one file was found with OS independent path ‘lib/armeabi-v7a/libRSSupport.so‘

    2021年10月2日
    43
  • Redis锁的介绍「建议收藏」

    Redis锁的介绍「建议收藏」Redis锁的实现:由于Redis是单进程的,可以简单用setnx这个命令进行加锁操作,谁能操作成功,谁就可以获得锁。简单的代码如下:defacquire_lock():   #identifier:唯一标识客户端   #lockname锁名字   #redis客户端连接   ifredis.setnx(lockname,identifier):     …

    2022年6月16日
    31
  • 每天一道算法_3_487-3279_对电话号码格式化统计批处理

    早上弄了一道求高精度幂的算法,偷懒用了内部类,总觉得过意不去,所以今天重新做了一道算法题,做完心里舒服好多。题目如下: Description企业喜欢用容易被记住的电话号码。让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语。例如,你需要给滑铁卢大学打电话时,可以拨打TUT-GLOP。有时,只将电话号码中部分数字拼写成单词。当你晚上回到酒店,可以通过拨打310-GI

    2022年3月10日
    362
  • 选择器gt_css的基本选择器

    选择器gt_css的基本选择器一、后代选择器选取指定元素的后代元素与子元素选择器相比,后代选择器选取的不一定是直接后代(儿子),而是作用于所有后代元素(儿子、孙子、重孙…)都可以。二、(>)子元素选择器选取某个元素的

    2022年8月1日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号