我正在使用formData进行Ajax Image Uploading,当我第一次提交它会成功上传时,再次单击post图标按钮也会发布到服务器上,我认为formData不会清除。
我的代码
$("#postsubmitimage").click(function () {
var formData = new FormData();
for (var i = 0; i < files.length; i++) {
if (files[i].type.indexOf('image/') === 0) {
formData.append("files", files[i]);
}
}
$.ajax({
type: "POST",
url: '/Ajax/Fileupload/',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (json) {
$('#textpostimage').val('');
}
});
})
答案 0 :(得分:0)
你尝试过这样做吗?
var formData = new FormData($('<form></form>'));
答案 1 :(得分:0)
我认为这是因为在ajax提交后你的files
变量没有被清除。在您的点击处理程序中,您确实创建了一个空的FormData
对象,但随后您继续使用来自files
的旧引用填充该对象,这显然不清楚。
我建议在成功完成ajax后进行一些清理
success: function (json) {
// Supposing #textpostimage is your file input, you are already clearing it
$('#textpostimage').val('');
// Also clear your "files" reference
files = [];
}
要清除整个表单,您可以执行$('#myForm').get(0).reset()
我不知道您在files
使用#textpostimage
的值填充Protein
的时间,但如果您希望多个表单提交工作,请确保不仅在页面加载时执行此操作