2017-08-18 1 views
0

ich mehrere Dropzone haben bildetDropzone - mehrere Instanzen bekommen id

<form action="/upload" class="dropzone" id="group1"></form> 
<form action="/upload" class="dropzone" id="group2"></form> 
<form action="/upload" class="dropzone" id="group3"></form> 

Wie kann ich die ID des Formulars erhalten Sie die Datei in fallen gelassen wird?

Antwort

0

Um in eine Dropzone-Aktion einzubinden, wie eine Datei, die hinzugefügt wird, müssen Sie einen Event-Handler verwenden. From the docs:

Dropzone löst Ereignisse, wenn Dateien verarbeitet, zu dem Sie ganz einfach registrieren, durch den Aufruf .on (eventname, callback) auf die Instanz.

Sie müssen also Ihre Dropzones manuell instanziieren, um Zugriff auf die Instanz zu erhalten.

Wenn Sie mit jQuery:

// Don't automatically instantiate, we'll do it manually 
Dropzone.autoDiscover = false; 

// Using the jQuery syntax shown in the docs  
$("#group1, #group2, #group3").dropzone({ 
    init: function() { 
     var formID = this.element.attributes.id; 
     this.on("addedfile", function(file) { 
      console.log('Image dropped on form ID', formID); 
     }); 
    } 
}); 

Wenn Sie nicht jQuery verwenden:

Dropzone.autoDiscover = false; 

var dz = [], 
    forms = document.getElementsByTagName('form'); 

for (var i = 0; i < forms.length; i++) { 
    dz[i] = new Dropzone(forms[i], { 
     init: function() { 
      var formID = this.element.attributes.id; 
      this.on("addedfile", function(file) { 
       console.log('Image dropped on form', formID); 
      }); 
     } 
    }); 
}