2015-09-05 4 views
2

Я настроив dropzone.jsDropzone Init() не выполняется

Мой макет является:

enter image description here

Мой HTML Содержимое:

<form action="/Drag/SaveUploadedData/" enctype="multipart/form-data" id="dropzoneForm"> 
<div class="dropzone" id="mydropzone"></div> 
<div style="position:absolute;bottom:0;"> 
    <ul style="color:red;"> 
     <li style="list-style-type:square;"> 
      Invalid file name/type 
     </li> 
    </ul> 
</div> 
<input type='file' id='fileUpload' style='opacity:0;' multiple onchange="javascript: addFilesToDropzone();" /> 

Я использую ссылку как файлU pload называется «Просмотр»

При нажатии этого откроется диалоговое окно открытия файла, и мы будем выбирать файл.

Я написал в onchange="javascript: addFilesToDropzone();" событие #fileUpload. Это вызовет следующую функцию,

function addFilesToDropzone() 
{ 
    document.getElementById('mydropzone').files = document.getElementById('fileUpload').files; 

    Dropzone.options.mydropzone = { 
     init: function() { 
      //var dropZone = this; 
      if (document.getElementById('mydropzone').files.length > 0) { 
       alert(); 
       $.each(files, function (index, item) { 
        this.emit('addedfile', 'uploading'); 
       }); 
      } 

     } 
    }; 
} 

Моя проблема в том, что не выполняет Dropzone.options.mydropzone линии и, следовательно, она не выполняет init().

Я получил файлы из #fileUpload ввода, но он не выполняет init(), чтобы вызвать метод addedfile в dropzone.js

Почему это происходит? и как решить эту проблему ?.

+0

Я не думаю, что это повлияет на вашу проблему, но «JavaScript:» больше не считается необходимым. –

+0

Я не знаком с dropzone, и, поскольку нет никакой скрипки, я не могу сказать точно, однако .. Я не вижу в вашем коде кода, что вы на самом деле вызываете функцию init. 'Dropzone.options.mydropzone' - это просто объект javascript, который вы фактически не видите« он ». – Saar

+0

Я вызываю init: function() {} внутри Dropzone.options.mydropzone. Но он не звонит. Thats проблема @Saar – Vikash

ответ

3

В этом коде вы определяете объект javascript с именем mydropzone внутри параметров объекта, который находится внутри объекта Dropzone.

Внутри объекта mydropzone вы определили функцию init. не

Dropzone.options.mydropzone = { 
     init: function() { 
      //var dropZone = this; 
      if (document.getElementById('mydropzone').files.length > 0) { 
       alert(); 
       $.each(files, function (index, item) { 
        this.emit('addedfile', 'uploading'); 
       }); 
      } 

     } 
    }; 

теперь для того, чтобы вызвать эту функцию вам необходимо сделать:

Dropzone.options.mydropzone.init(); 
+0

Спасибо большое !!! – Vikash

Смежные вопросы