文件输入框清除值后仍保留已选文件的问题求助
解决文件输入框弹窗关闭后仍保留选中文件的问题
直接用$("#fileuploadbannermobile").val('')没效果,大概率是浏览器安全限制或者弹窗DOM状态缓存的问题,试试这几个靠谱的解决办法:
方法1:替换文件输入框元素彻底重置
单纯清空值可能被浏览器的状态缓存影响,直接替换成新的相同元素,能彻底重置输入框状态:
// jQuery写法 const $fileInput = $("#fileuploadbannermobile"); $fileInput.replaceWith($fileInput.clone(true));
原生JS写法:
const fileInput = document.getElementById('fileuploadbannermobile'); const newInput = fileInput.cloneNode(true); fileInput.parentNode.replaceChild(newInput, fileInput);
方法2:调整重置时机到弹窗关闭时
如果是打开弹窗时重置的时机不对,改成弹窗关闭就执行重置操作,下次打开弹窗时输入框自然是干净的:
// 以Bootstrap弹窗为例,替换成你实际项目中的弹窗关闭事件 $('#你的弹窗ID').on('hidden.bs.modal', function () { $("#fileuploadbannermobile").val(''); // 也可以搭配上面的替换元素方法做双保险 });
额外提醒
如果你的弹窗是每次打开都动态生成DOM的,要确保重置代码是在弹窗DOM渲染完成后执行,不然找不到目标元素自然没效果。
内容的提问来源于stack exchange,提问作者Mert
相关产品推荐
相关产品推荐

