Estoy usando dropzone.js como parte de un formulario que funciona como debería. Lo tengo configurado para que no procese la cola de carga hasta que se haga clic en enviar. Pero una vez que haya cargado todos los archivos, quiero que envíe el formulario. Agregué el evento en jQuery pero aún no lo envía.
¿Qué estoy haciendo mal aquí?
Me dio la alerta de éxito pero no envió el formulario:
$(document).ready(function() { $("div#dropzone").dropzone({ url: "js/dropzone/upload.php", autoProcessQueue: false, maxFilesize: 2, parallelUploads: 100, uploadMultiple: true, acceptedFiles: "image/*", maxFiles: 10, init: function() { var myDropzone = this; $("#theform").submit(function(e) { e.preventDefault(); e.stopPropagation(); myDropzone.processQueue(); }); }, completemultiple: function(file, response){ alert("success"); $("#theform").submit(); }, }); });Puede establecer una marca si se puede enviar el formulario, luego decidir si necesita prevenirPredeterminado:
$(document).ready(function() { $("div#dropzone").dropzone({ url: "js/dropzone/upload.php", autoProcessQueue: false, maxFilesize: 2, parallelUploads: 100, uploadMultiple: true, acceptedFiles: "image/*", maxFiles: 10, init: function() { var myDropzone = this; $("#theform").submit(function(e) { if ($(this).prop('ready')) return true; e.preventDefault(); e.stopPropagation(); myDropzone.processQueue(); }); }, completemultiple: function(file, response){ alert("success"); $("#theform").prop('ready', true).submit(); }, }); });Me las he arreglado para resolverlo. Estoy seguro de que otras personas tendrán el mismo problema, así que aquí está la respuesta. Invierte el e.preventDefault y luego hace clic en el botón Enviar con jQuery una vez que la cola está completa:
$(documento).listo(función() {
$("div#dropzone").dropzone({ url: "js/dropzone/upload.php", autoProcessQueue: false, maxFilesize: 2, parallelUploads: 100, uploadMultiple: true, acceptedFiles: "image/*", maxFiles: 10, init: function() { var myDropzone = this; $("#theform").submit(function(e) { e.preventDefault(); e.stopPropagation(); myDropzone.processQueue(); }); }, queuecomplete: function(file, response){ $("#theform").unbind('submit').submit(); $("#submit").click(); }, });