Dropzonejs 无法正常提交

Dropzonejs cannot submit properly

这是我的 dropzone 配置:

var myDropzone = new Dropzone(".myDZ", {
    url: $('#form').attr('action'), 
    previewTemplate: previewTemplate,
    uploadMultiple: true, 
    previewsContainer: "#previews", 
    clickable: "#fileinput-btn", 
    autoProcessQueue: false,
    init: function() {
        var dz = this;
        this.element.querySelector("button[type=submit]").addEventListener("click", function (e) {
            e.preventDefault();
            dz.processQueue();
        });
    }
});

按下提交按钮后,后台可以看到数据提交正确。但是,后端returns响应后,前端不会响应。表单页面保持不变,不显示返回的消息,再次点击提交按钮不会触发任何提交。

我试过这个:

this.element.querySelector("button[type=submit]").addEventListener("click", function (e) {
            e.preventDefault();
            dz.processQueue();
            document.getElementById("form").submit();
        });
    }
});

这将强制表单提交两次,但在第二次尝试后显示正确的响应。这有效但感觉不对。

对可能出错的地方有什么建议吗?

我同意提交两次有点脏。 您可能会尝试在成功函数中捕获您的响应,因为 Dropzone 正在异步等待。

var myDropzone = new Dropzone(".myDZ", {
    url: $('#form').attr('action'), 
    previewTemplate: previewTemplate,
    uploadMultiple: true, 
    previewsContainer: "#previews", 
    clickable: "#fileinput-btn", 
    autoProcessQueue: false,
    init: function() {
        var dz = this;
        this.element.querySelector("button[type=submit]").addEventListener("click", function (e) {
            e.preventDefault();
            dz.processQueue();
        });
    },
    // Try this success.
    success: function (data, response) {
        console.log(response);
    }
});