Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery从列表中删除所选文件_Javascript_Jquery - Fatal编程技术网

Javascript JQuery从列表中删除所选文件

Javascript JQuery从列表中删除所选文件,javascript,jquery,Javascript,Jquery,我有多个文件输入,并返回所选项目的名称,我想将删除选项添加到我的列表中,例如,当用户选择2个文件时,可以在上载文件之前删除其中任何一个文件 code <!-- HTML --> <input type="file" name="file" placeholder="Choose File" id="file" multiple> <!-- showing selected files

我有多个文件输入,并返回所选项目的名称,我想将删除选项添加到我的列表中,例如,当用户选择2个文件时,可以在上载文件之前删除其中任何一个文件

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
上添加新文件,而不是替换当前文件。