我正在开发一个使用Angular文件上传器的项目:
template: '<input type="file" id="files" name="files[]" multiple /><output id="list"></output>',
...并为此文件上传者设置了“更改”事件监听器:
document.getElementById('files').addEventListener('change', handleFileSelect, false);
如果我的用户选择了一个文件列表,则会触发我的回调并检索文件列表。这不是问题。
然后我用文件列表填充对话框。然后,用户可以选择在完成上传之前删除一个或多个文件,也可以一起取消上传。
如果用户删除所有文件或取消上传,返回上传对话框并选择相同的文件列表,则不会触发“更改”事件侦听器,因为输入的值从未实际更改过。< / p>
有没有办法在文件上传器(输入框)的“打开”按钮上设置“点击”事件?
答案 0 :(得分:2)
刚刚解决了我的问题。
在回调我的'change'事件监听器(handleFileSelect)时,我将文件上传器的值重置为“”。现在,每次选择一个文件时,无论它是否是同一个列表,都会触发“更改”事件。
document.getElementById('files').value = "";