如何从<input type="file">
元素中删除所选附件?
当你已经选择了一个附件时,Firefox似乎无法删除附件。
我试图删除该名称,然后点击“打开”但没有任何结果 我也试图取消但附件仍在那里。
我的解决方案是添加一些onclick javascript来删除值,但有没有办法不添加一些脚本就像在chrome的附件中一样?
答案 0 :(得分:3)
不,我认为你必须插入一些js。
Firefox似乎将文件输入的值保存到缓存中(与任何其他输入值btw一样),只有在添加新值时才更新它。
取消按钮不会清除它,这在我对英语的理解中是有意义的,因为如果我想“取消”选择其他文件的动作,这并不意味着我想“清除”那个我以前有过。
如果您真的希望用户能够清除这些内容,可以添加一些按钮来执行此操作
var f = document.querySelectorAll('input[type=file]'),
clearInput = function(){this.previousSibling.value = '';};
for(var i = 0; i < f.length; i++){
button = document.createElement('button');
button.textContent = 'clear';
button.addEventListener('click', clearInput);
f[i].parentNode.insertBefore(button, f[i].nextSibling);
}
<input type="file"/><br>
<input type="file"/><br>
<input type="file"/><br>
或每次搜索新文件时清除它。
var f = document.querySelectorAll('input[type=file]');
var clearInput = function(){this.value=''};
for(var i=0;i<f.length; i++)
f[i].addEventListener('click', clearInput);
<input type="file"/><br>
<input type="file"/><br>
<input type="file"/><br>