4

I want to add checkbox to dropzone images so that I can upload only the selected ones. I am going to add a checkbox next to each image when the addedfile event is fired.

I am using the following method to programmatically add images to dropzone:

var mockFile = { name: "image.jpg", size: 12345 };
imgUrl = "http://example.com/image.jpg"
myDropzone.options.addedfile.call(myDropzone, mockFile);
myDropzone.options.thumbnail.call(myDropzone, mockFile, imgUrl);

The problem is that the "addedfile" event is not fired for images added this way:

myDropzone.on("addedfile", function(file) {
    console.log("file added!"); // this line is never printed
});

But if added an image by manually clicking on dropzone and selecting a file, the above event would fire. Why is this event not fired in the first case?

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
B Faley
  • 17,120
  • 43
  • 133
  • 223
  • I don't see anything wrong here. Perhaps the error is within some of the adjacent code? Not sure about Dropzone, but I know typical drag'n'drop functionality requires a lot of `e.preventDefault` and `e.stopPropagation` for event listeners to work properly. – Ross Brasseaux Feb 16 '15 at 15:52

4 Answers4

8

Don't do what I did and try to listen for the addedFile event instead of addedfile (d'oh).

gregdev
  • 1,863
  • 3
  • 23
  • 28
5

According to dropzone documentation: The proper way to trigger addedfile event is to call it in the init section when you instantiate dropzone.

Example:

   Dropzone.options.myAwesomeDropzone = {
      init: function() {
       this.on("addedfile", function(file) { alert("Added file."); });
      }
   };
Ramesh Pareek
  • 1,601
  • 3
  • 30
  • 55
2

i had same issue and found the answer here from @enyo: https://github.com/enyo/dropzone/issues/209

Basically the addedfile.call is a bit clumsy and you need replace this line by the following:

myDropzone.emit("addedfile", file);

This way the "addedfile" function is called properly.

Cheers

0

Must call myDropzone.options.addedfile.call(myDropzone, mockFile); after declared "addedfile" callback.

JKLIR
  • 1,008
  • 1
  • 9
  • 11