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

时间:2017-06-09 05:48:49

标签: javascript

我正在使用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('');
                        }
                    });
            })

2 个答案:

答案 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的时间,但如果您希望多个表单提交工作,请确保不仅在页面加载时执行此操作