我正在使用formData进行Ajax图像上传,当我第一次提交时它将成功上传,然后再次单击将图像也发布到服务器的发布按钮,我认为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('');
}
});
})
我认为发生这种情况是因为files
ajax提交后未清除您的变量。在点击处理程序中,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
,但是如果您想让多个表单提交工作,请确保不仅在页面加载时执行此操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句