Javascript JQuery从列表中删除所选文件
我有多个文件输入,并返回所选项目的名称,我想将删除选项添加到我的列表中,例如,当用户选择2个文件时,可以在上载文件之前删除其中任何一个文件Javascript JQuery从列表中删除所选文件,javascript,jquery,Javascript,Jquery,我有多个文件输入,并返回所选项目的名称,我想将删除选项添加到我的列表中,例如,当用户选择2个文件时,可以在上载文件之前删除其中任何一个文件 code <!-- HTML --> <input type="file" name="file" placeholder="Choose File" id="file" multiple> <!-- showing selected files
code
<!-- HTML -->
<input type="file" name="file" placeholder="Choose File" id="file" multiple>
<!-- showing selected files names -->
<div class="row">
<div class="col-md-12 filenames"></div>
</div>
<!-- SCRIPT -->
$(document).ready(function (e) {
document.getElementById('file').onchange = function () {
var row = 0;
if (this.files.length > 0) {
// THE TOTAL FILE COUNT.
$('.filenames').append('Total Selected Files: <b>' + this.files.length + '</b></br >');
// RUN A LOOP TO CHECK EACH SELECTED FILE.
for (var i = 0; i <= this.files.length - 1; i++) {
var fname = this.files.item(i).name; // THE NAME OF THE FILE.
var fsize = this.files.item(i).size; // THE SIZE OF THE FILE.
// SHOW THE EXTRACTED DETAILS OF THE FILE.
$('.filenames').append(++row + "- " + fname + ' (<b>' + fsize + '</b> bytes) <hr/>');
}
}
};
});
$(文档).ready(函数(e){
document.getElementById('file').onchange=function(){
var行=0;
如果(this.files.length>0){
//文件总数。
$('.filenames').append('所选文件总数:'+this.Files.length+'');
//运行循环以检查每个选定文件。
对于(var i=0;i文件API似乎没有提供从文件列表中删除文件的方法,但是您可以从文件列表对象创建一个常规数组,然后只使用splice
方法并通过索引删除文件
let files=[]
$(“#文件”).on('change',function(){
files=[…files,…this.files]
渲染文件(文件)
})
$(“#提交”)。在('单击',函数()上{
console.log(文件)
})
函数渲染文件(文件){
设row=0;
$('.filenames').html('')
if(files.length){
$('.filenames').append(`Total Selected Files:${Files.length}`);
forEach(({name,size},index)=>{
const fileEl=$('')
常量文本=$(“”{
html:`${++row}-${name}(${size}字节)`
})
常数btn=$(''){
文本:“X”
})
btn.on('单击',函数(){
文件.拼接(索引,1)
渲染文件(文件)
})
fileEl.append(文本)
追加文件(btn)
$('.filename').append(fileEl);
$('.filename').append('
'))
})
}
}
。文件项{
显示器:flex;
对齐项目:居中;
证明内容:之间的空间;
}
提交
@AmitKumarSingh这个问题没有被接受的答案!谢谢你,Nenad,它工作得很好,但是我现在面临一个很小的问题(不确定我是否应该称之为bug!),现在看看如果我选择2个文件,然后选择另一个,而不是我的列表变为3,它变为1(前2个将被新选择的文件替换)我想它应该更新列表而不是清除它?你怎么看?@mafortis Hi我更新了我的答案,在change
上添加新文件,而不是替换当前文件。