input type=file多选文件列表怎么单个添加删除按钮?
需求
- 最多选择两个文件
- 每个文件后面都有一个删除按钮,点击按钮删除该li,同时也删除文件域中对应的文件
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script>
window.onload = function(){
var oFile = document.getElementById('file');
var oList = document.getElementById('fileList');
var delNode = function(i){
console.log(i);
}
oFile.onchange = function(e){
if(this.files.length>2){
alert('最多选择两个文件!');
this.value = '';
}else{
for(var i=0;i<this.files.length;i++){
var node = document.createElement('li');
node.setAttribute('id','li_'+i);
var html = this.files[i].name+"<button title='btn_"+i+"' class='delBtn'>del</button>";
node.innerHTML = html;
oList.appendChild(node);
}
}
};
};
</script>
</head>
<body>
<input type="file" multiple id="file">
<ul id="fileList">
</ul>
<input type="button" value="Clear" id="clearBtn">
</body>
</html>
疑问
- 前面都实现了
- 点删除按钮的时候删除li好写,但是怎么删除文件域中的那个元素?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JS目前无法直接操作FileList对象,但我们还是可以处理的,我能想到的就是将FileList从原来的form提交方式抽离出来,可以使用xhr2的二进制方式提交。
比如下写法: