Javascript dropzone在一个表单中具有多个全局事件队列完成

Javascript dropzone在一个表单中具有多个全局事件队列完成,javascript,jquery,dropzone.js,Javascript,Jquery,Dropzone.js,我有一个普通的简单表单,包含2个droploaddiv字段和经典表单字段。 autodiscover被禁用,它们有一个不同的参数名来处理它们,在php上传页面中有点不同 问题是要知道两个DIV的所有内容是否都上传了。对于每个dropload对象,“queuecomplete”被激发2次 处理这种情况的最佳方法是什么? 上传工作,只有事件处理完成是现在的问题,只是想知道是否两者都成功完成 我想在php文章中使用另外两个输入字段 myDropzone.on("sending

我有一个普通的简单表单,包含2个droploaddiv字段和经典表单字段。 autodiscover被禁用,它们有一个不同的参数名来处理它们,在php上传页面中有点不同

问题是要知道两个DIV的所有内容是否都上传了。对于每个dropload对象,“queuecomplete”被激发2次

处理这种情况的最佳方法是什么? 上传工作,只有事件处理完成是现在的问题,只是想知道是否两者都成功完成

我想在php文章中使用另外两个输入字段

        myDropzone.on("sending", function(file, xhr, formData) {
            var data = $('#testform').serializeArray();
            $.each(data, function(key, el) {
                formData.append(el.name, el.value);
            });
        });
  • 如果一切都完成了,我想发送邮件到电子邮件地址
HTML:


输入号码:
输入电子邮件:
JS:


Dropzone.autoDiscover=false;
$('.dropzone')。每个(函数(){
var dropUrl='file_upload.php';
var paramName=$(this.attr('id');
var createImageThumbnails=false;
var addRemoveLinks=true;
var-maxFiles=50;
var-parallelUploads=4;
var maxFilesize=25;//MB
var acceptedFiles=“应用程序/pdf”;
var autoProcessQueue=false
$(此).dropzone({
url:dropUrl,
paramName:paramName,
createImageThumbnails:createImageThumbnails,
addRemoveLinks:addRemoveLinks,
maxFiles:maxFiles,
并行上传:并行上传,
maxFilesize:maxFilesize,//MB
acceptedFiles:acceptedFiles,
autoProcessQueue:autoProcessQueue,
uploadMultiple:true,
init:function(){
var myDropzone=this;
$(“#上载文件”)。单击(函数(e){
var count=myDropzone.files.length;
log(“测试事件行,文件数:“+count”);
e、 预防默认值();
e、 停止传播();
如果(计数>0){
myDropzone.processQueue();
}
});         
myDropzone.on(“发送多个”,函数(文件、响应){
console.log(“发送多个”);
});
myDropzone.on(“successmultiple”,函数(文件、响应){
console.log(“successmultiple”);
});
myDropzone.on(“queuecomplete”,函数(文件、响应){
console.log(“queuecomplete”);
});
myDropzone.on(“errormultiple”,函数(文件、响应){
console.log(“errormultiple”);
});
}       
});
});
包括jquery最小值和dropzone最新值

<form action="file_upload.php" class="testform" enctype="multipart/form-data" id="testform">

    input number: <input type="text" id="myInput"/>
    input E-mail : <input type="email" name="mailadress" required /> 

    <div class="dropzone" id="invoices"></div>
    <div class="dropzone" id="documents"></div>

    <input type="submit" id='uploadfiles' value='Upload Files' >
</form>
<script type="text/javascript">
    Dropzone.autoDiscover = false;
    $('.dropzone').each(function(){
        var dropUrl = 'file_upload.php';
        var paramName = $(this).attr('id');
        var createImageThumbnails = false;
        var addRemoveLinks = true;
        var maxFiles =  50;
        var parallelUploads = 4;
        var maxFilesize = 25; // MB
        var acceptedFiles = "application/pdf";
        var autoProcessQueue = false
        
        $(this).dropzone({
            url: dropUrl,
            paramName: paramName, 
            createImageThumbnails: createImageThumbnails,
            addRemoveLinks: addRemoveLinks,
            maxFiles: maxFiles,
            parallelUploads: parallelUploads,
            maxFilesize: maxFilesize, // MB
            acceptedFiles: acceptedFiles,
            autoProcessQueue: autoProcessQueue,
            uploadMultiple: true,
            init: function(){
                var myDropzone = this;
                $('#uploadfiles').click(function(e) {
                    var count= myDropzone.files.length;
                    console.log("test event line, number of files: " + count);
                    e.preventDefault();
                    e.stopPropagation();
                    if(count >0){
                        myDropzone.processQueue();
                    }
                  
                });         
                myDropzone.on("sendingmultiple", function(files, response) {
                  console.log("sendingmultiple ");
                });
                myDropzone.on("successmultiple", function(files, response) {
                  console.log("successmultiple ");
                });
                myDropzone.on("queuecomplete", function(files, response) {
                  console.log("queuecomplete ");
                });
                myDropzone.on("errormultiple", function(files, response) {
                  console.log("errormultiple ");
                });
            }       
        });
    });
</script>