2014-08-30 150 views
4

我需要以编程方式更改maxFiles选项。 这是我的init:Dropzonejs:以编程方式更改maxFiles

Dropzone.options.dropzone = { 
        paramName: "files", 
        params:true, 
        url: "/upload.php", 
        autoProcessQueue: true, 
        uploadMultiple: true, 
        parallelUploads: 10, 
        maxFiles: fileleft, 
        previewsContainer: ".dropzone", 
        clickable: true, 
        addRemoveLinks: false, 
        acceptedFiles: '.jpg,.pdf,.png,.bmp',       
        dictInvalidFileType: 'Unsupported.', 
        accept: function(file, done) { 
         done(); 

        }, 
        init: function() { 

         var myDropzone = this; 

         this.on("successmultiple", function(files, response) { 
          ins.pop_gallery(id); 
          this.removeAllFiles(); 

         this.on("maxfilesexceeded", function(file){ 

          this.removeFile(file); 
         }); 

         this.on("sending", function(file, xhr, formData) { 
          formData.append("custom", id); 

         }); 
        } 

       } 

一切正常,但我需要在以后更改MAXFILES选项值。

我已经试过这样:

Dropzone.options.dropzone.maxFiles = fileleft; 

这:

myDropzone.maxFiles = fileleft; 

但尽管这样的代码

alert(Dropzone.options.dropzone.maxFiles); 

给我正确的答案,在MAXFILES上传实际上限制仍然没有变化。

有什么想法?

谢谢。

+0

您正在重置dropzone选项对象中包含的变量,但您实例化的dropzone实例未被修改。您需要重新初始化插件:$('。dropzone')。dropzone(newOptions); – bencripps 2014-08-30 10:08:08

回答

4

首先,感谢您的回放。 我已经发现了一些问题,重新初始化插件,最后我觉得我的错误是在init:

init: function() { 

    var myDropzone = this; 

重新声明,我失去的进一步代码的可见性的变种。

init: function() { 

    myDropzone = this; 

所以改变(不VAR)

myDropzone成为访问,以便声明

myDropzone.options.maxFiles = fileleft; 

现在正在工作。

非常感谢。