我有一个多文件上传解决方案,单击“重置”按钮后不会清除文件。查看JSFIDDLE Demo解决方案。 这是HTML:
<form id="ImageUpload" action="#">
<div class="field" align="left">
<h2 class="page-header">Upload your images</h3>
<div class="form-group">
<div class="file-loading">
<input type="file" id="files" name="files[]" multiple />
</div>
</div>
</div>
<hr />
<div class="text-center">
<button type="submit" name="Submit" class="btn btn-success">Submit</button>
<button type="reset" name="Reset" class="btn btn-danger">Reset</button>
</div>
</form>
这是Javascript:
$(document).ready(function() {
if (window.File && window.FileList && window.FileReader) {
$("#files").on("change", function(e) {
var files = e.target.files,
filesLength = files.length;
for (var i = 0; i < filesLength; i++) {
var f = files[i]
var fileReader = new FileReader();
fileReader.onload = (function(e) {
var file = e.target;
$("<span class=\"pip\">" +
"<img class=\"imageThumb\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
"<br/><span class=\"remove\"><i class='fa fa-times'></i></span>" +
"</span>").insertAfter("#files");
$(".remove").click(function() {
$(this).parent(".pip").remove();
});
});
fileReader.readAsDataURL(f);
}
});
} else {
alert("Your browser doesn't support to File API")
}
});
理想的结果是不仅清除所选文件的数量(“选择文件”按钮),而且清除预览图像。
按下“重置”按钮后,下面显示的体验是预期的结果。
我将不胜感激,谢谢!
答案 0 :(得分:1)
向您的重置按钮单击添加功能。
$("button[name='Reset']").click(function() {
var $input = $("#files");
// Clear your input file value
$input.replaceWith($input.val('').clone(true));
// Then clear the preview of the images
$('.pip').html('');
});
答案 1 :(得分:1)
您需要为“重置”按钮单击事件添加功能。这是您可以做的:
$(document).on('click', '[name=Reset]', function(){
$('.pip').remove();
})