如何删除输入文件中的附件? (火狐)

时间:2015-05-25 03:51:28

标签: javascript firefox attachment

如何从<input type="file">元素中删除所选附件?
当你已经选择了一个附件时,Firefox似乎无法删除附件。

我试图删除该名称,然后点击“打开”但没有任何结果 我也试图取消但附件仍在那里。

我的解决方案是添加一些onclick javascript来删除值,但有没有办法不添加一些脚本就像在chrome的附件中一样?

Firefox screenshot

1 个答案:

答案 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>