2014-08-30 47 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; 

現在正在工作。

非常感謝。