如何在Javascript/Jquery中删除所选文件
我有一个表单,允许用户上传多张图片。如果用户不想上传特定的图像,他们可以选择逐个删除图像 现在,如何从他们删除的文件类型(例如,不想上载)中删除该值 我尝试过使用($('input').val(“”),但它只适用于单个图像,不适用于多个图像。如果我将其用于多个图像,则所有上载的图像值将变为空,而不是用户要删除的特定图像。。下面是我的代码:- HTML如何在Javascript/Jquery中删除所选文件,javascript,jquery,html,Javascript,Jquery,Html,我有一个表单,允许用户上传多张图片。如果用户不想上传特定的图像,他们可以选择逐个删除图像 现在,如何从他们删除的文件类型(例如,不想上载)中删除该值 我尝试过使用($('input').val(“”),但它只适用于单个图像,不适用于多个图像。如果我将其用于多个图像,则所有上载的图像值将变为空,而不是用户要删除的特定图像。。下面是我的代码:- HTML <input type="file" id="files2" name="cert_img" multiple> <output
<input type="file" id="files2" name="cert_img" multiple>
<output id="list2"></output>
Javascript
var count2=0;
function handleFileSelect2(evt) {
var $fileUpload = $("input#files2[type='file']");
count2=count2+parseInt($fileUpload.get(0).files.length);
var files = evt.target.files;
for (var i = 0, f; f = files[i]; i++) {
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
reader.onload = (function (theFile) {
return function (e) {
var span = document.createElement('span');
span.innerHTML = ['<img class="thumb" id="image_X" src="', e.target.result, '" title="', escape(theFile.name), '"/><span class="remove_img_preview"></span>'].join('');
document.getElementById('list2').insertBefore(span, null);
};
})(f);
reader.readAsDataURL(f);
}
}
$('#files2').change(function(evt){
handleFileSelect2(evt);
});
$('#list2').on('click', '.remove_img_preview',function () {
$(this).parent('span').remove();
//$('input').val("");
});
var count2=0;
功能手柄文件选择2(evt){
var$fileUpload=$(“输入#files2[type='file']);
count2=count2+parseInt($fileUpload.get(0.files.length));
var files=evt.target.files;
for(var i=0,f;f=files[i];i++){
如果(!f.type.match('image.*')){
继续;
}
var reader=new FileReader();
reader.onload=(函数(文件){
返回函数(e){
var span=document.createElement('span');
span.innerHTML=['').join('');
document.getElementById('list2').insertBefore(span,null);
};
})(f) );
reader.readAsDataURL(f);
}
}
$('#files2').change(函数(evt){
handleFileSelect2(evt);
});
$(“#列表2”)。在('单击','上。删除\u img\u预览',函数(){
$(this.parent('span').remove();
//$('input').val(“”);
});
提前谢谢 根据问题,您不能更改文件列表
内容,因为它是只读的
但是,如果要删除文件列表的文件,可以创建一个新对象,并将要上载的文件设置为该对象。然后使用创建的对象上载文件。运行我的示例并选择多个文件。然后单击要删除的任何文件。删除文件后,请参见浏览器控制台
var文件;
$(“#文件”)。关于(“更改”,函数(e){
文件=$(“#文件”)[0]。文件;
$.each(文件、函数(索引、值){
$(“ol”).append(““+value.name+” ”);
});
});
$(文档)。在(“单击”,“li”,函数()上){
var newFiles={};
var index=$(this.index();
$((“li:n子项(“+(索引+1)+”)).remove();
$(“li”)。每个(函数(索引,元素){
var dataIndex=$(元素).attr(“数据索引”);
newFiles[index]=文件[dataIndex];
});
console.log(新文件);
});代码>
li:悬停{
颜色:红色;
游标:默认值;
}