【发布时间】:2021-12-12 01:17:49
【问题描述】:
我正在创建添加删除图像上传。当我添加 1 个图像的文件时,它将自动创建新的输入文件属性而无需单击按钮(仅单击输入属性)。
当我点击del图标删除图片文件时,图片的预览已被移除,但该图片的输入属性仍然存在,并且提交的所有图片文件的结果都包含删除的图片。
你能帮我修改这个javascript,所以当我删除图像时,它也会删除属于它的图像的输入属性,好吗?
var abc = 0;
$(document).ready(function() {
$('body').on('change', '#file', function(){
if (this.files && this.files[0]) {
abc += 1;
$(this).before("<div id='abcd"+ abc +"' class='abcd'><img id='previewimg" + abc + "' src=''/></div>");
var reader = new FileReader();
reader.onload = imageIsLoaded;
reader.readAsDataURL(this.files[0]);
// $(this).hide();
$("#abcd"+ abc).append($("<img/>", {id: 'x', src: 'x.png', alt: 'delete'}).click(function() {
$(this).parent().remove();
}));
}
$(this).after($("<div/>", {id: 'filediv'}).fadeIn('slow').append(
$("<input/>", {name: 'file[]', type: 'file', id: 'file'})
));
});
//To preview image
function imageIsLoaded(e) {
$('#previewimg' + abc).attr('src', e.target.result);
};
});
#file{
color:green;
padding:5px; border:1px dashed #123456;
background-color: #f9ffe5;
}
#x{
width: 17px;
height: 17px;
border: none;
margin-left: -20px;
margin-top: 1px;
cursor: pointer;
position: absolute;
}
.abcd img{
height:100px;
width:100px;
padding: 5px;
border: 1px solid rgb(232, 222, 189);
}
<form enctype="multipart/form-data" action="" method="post">
<div id="filediv">
<input name="file[]" type="file" id="file"/>
</div><br/>
<input type="submit" value="Upload File" name="submit"/>
</form>
【问题讨论】:
-
嗨,我已经完全重写了你的代码并做了一个工作演示,这样你就可以走得更远..!希望对你有帮助
标签: javascript jquery