Я использую dropzone.js в приложении для рельсов. Dropzone является частью формы с другими входными элементами. При загрузке страницы div, содержащий форму, скрыт. При нажатии кнопки этот div сдвигается вниз. Однако на данном этапе Dropzone не инициализируется. Но он отлично работает, если я обновляю страницу и снова нажимаю ту же кнопку.Dropzone не загружается, если страница обновлена
Это моя Dropzone функция (внутри document.ready
)
function dropzoneControl() {
Dropzone.options.myDropzone = {
url: '/the_url',
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 5,
maxFiles: 5,
maxFilesize: 3,
acceptedFiles: 'image/*',
addRemoveLinks: true,
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
},
init: function() {
dzClosure = this;
document.getElementById("submit-button").addEventListener("click", function(e) {
e.preventDefault();
e.stopPropagation();
dzClosure.processQueue();
});
//send all the form data along with the files:
this.on("sendingmultiple", function(data, xhr, formData) {
formData.append("name", $("#name").val()); * * other data * *
});
//on successful upload
this.on("successmultiple", function(file, responseText) {
$('#name').val(""); * * clear the rest of the form * *
});
this.on("queuecomplete", function(file) {
this.removeAllFiles();
});
}
}
}
Попробуйте использовать опции dropzone вне функции 'ready()' funtion, это должно решить проблему. Или вы можете инициализировать dropzone вручную, как только страница будет загружена конструктором, посмотрите на http://www.dropzonejs.com/#create-dropzones-programmatically, не забудьте установить 'Dropzone.autoDiscover = false' прежде чем использовать этот второй вариант. – wallek876