如何使用JavaScript清除/重置formData()?

Hackbal Teamz

我正在使用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('');
                        }
                    });
            })
弗里曼·兰达(Freeman Lambda)

我认为发生这种情况是因为filesajax提交后未清除您的变量。在点击处理程序中,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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章