js input[type=file]选择重复的文件,无法触发change事件

135 篇文章 3 订阅
100 篇文章 1 订阅
"当浏览器检测到文件上传的input元素选择的文件未变化时,为节省资源不会重新加载。但在某些场景如图片裁剪中,即使文件相同也需要触发change事件。解决方法是在input元素上绑定onblur事件,利用onblur="this.value=''""来清空值,确保每次都能触发change事件进行下一步处理。这种方法利用了blur事件的优先级高于change事件的特性。"
摘要由CSDN通过智能技术生成

选择文件的时候,浏览器会判断是否跟之前一致,如果一致他就不会重新加载这个文件,避免无谓的加载消耗。所以我们在不一样的需求的时候,比如裁剪图片,无论他是不是相同图片,都必须让他触发change事件,这样才能进行下一步处理。

解决方法:给input添加原生事件onblur进行清空,οnblur="this.value=''" ,blur比change事件的优先级要高一点。

代码:

<input type="file" accept="image/*" οnblur="this.value=''" @change="uploadPhoto" class="uploadImg"/>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值