我在一个bootstrap主题的模式框中有一个表单。表单包含很少的输入字段和Dropzone字段,所有这些字段都通过ajax将数据发送到服务器。填写表格后,我显然需要重置下一组输入的表格。我已成功重置表单字段,除了Dropzone图像。
所以现在当我点击提交时,在填写表格后,输入数据。单击按钮再次打开模式以添加新集时,仍会显示上一个图像。我也需要这样做。
我一直在寻找S.O和许多其他地方的解决方案。我无法得到解决方案。任何指导都表示赞赏。
HTML:
<form enctype="multipart/form-data" id="addProductImageForm" class="dropzone dz-clickable" action="#">
<div class="dz-default dz-message" ><span>Click here to upload Product Image</span></div>
</form>
JS:
Dropzone.options.addProductImageForm = {
paramName: "productImage",
maxFilesize: 2,
maxFiles: 1,
uploadMultiple: false,
acceptedFiles: "image/*",
dictDefaultMessage: "Click to Upload",
addRemoveLinks: true,
accept: function(file, done) {
if (file.name == "bg.png") {
done("Naha, you don't.");
}
else {
done();
}
},
success: function(d, response, test) {
var value = response.replace("int(0)", "");
var value2 = value.replace(/(\r\n|\n|\r)/gm, "");
$('#product_imageName').val(value2);
},
init: function() {
this.on("maxfilesexceeded", function(file) {
alert("No more files please!");
});
}
};
$("#addProductImageForm").dropzone({url: "/path/to/upload_product_image.php"});
.
.
.
.
var formData = {
(input values here)
};
$.ajax({
type: 'POST',
url: 'path/to/projectsAction.php',
data: formData,
encode: true
})
.done(function(data) {
var value3 = data.replace(/(\r\n|\n|\r)/gm, "");
$('#project_productId').append('<option value="' + value3 + '" selected="selected">' + formData.product_name + '</option>');
$("#addProductForm").find("input[type=text], textarea, select").val("");
$("#addProductImageForm").html("");// THIS IS THE LINE THAT REMOVES THE THUMBNAIL. (From the answer given by xrcwrn)
$('.close').click();
});
event.preventDefault();
答案 0 :(得分:1)
如果您正在使用dropzone,请
<form action="/file-upload"
class="dropzone"
id="my-awesome-dropzone"></form>
发布数据后重置您的dropzone容器,如
$("#my-awesome-dropzone").html("");