输入类型=文件多个,删除项目

时间:2013-10-29 18:14:49

标签: javascript html5

HTML:

<input accept="image/*" class="" id="my_pics" multiple="multiple" name="pics" required="true" type="file" />

JS:

var files = document.getElementById('my_pics').files;
files.splice(1,2)
//TypeError: Object #<FileList> has no method 'splice'
delete files.item(2)
// true, but nothing happens with "2"
delete files[2]
// false, result is the same

我有一个包含多个文件的表单,我需要在服务器上仅在一个输入中上传有限数量的图像(例如,5),但我的代码不起作用。

如何解决?感谢。

1 个答案:

答案 0 :(得分:4)

您无法删除它,因为它是File对象中指向的FileList对象,因此上面的错误。但是,您可以遍历FileList并仅将所需的项目推送到数组,然后可以修改:

var files = document.getElementById('my_pics').files;
var newList = [];

for(var i = 0; i < files.length; i++)
{
    if(i !== 2)
    {
        newList.push(files.item(i));
    }
}

this answer可以看出,你不能delete实际的对象。只能删除对象的引用。因此,即使它适用于FileList对象,它也不会,但它只会设置that element equal to undefined