我正在使用dropzone.js作为表单的一部分,所有这些都可以正常工作。我设置了它,这样它才会处理上传队列,直到单击submit。但是一旦它上传了所有的文件,我希望它提交表单。我在jQuery中添加了这个事件,但是它仍然没有提交它。
我在这里做错什么了?
它给了我成功的警告,但没有提交表格:
$(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();
},
});
});
发布于 2022-02-22 18:01:37
如果表单可以提交,您可以设置一个标志,然后决定是否需要preventDefault:
$(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();
},
});
});
发布于 2022-02-22 18:03:33
我已经想出办法了。我相信其他人也会有同样的问题,下面是答案。当队列完成后,您可以反转e.preventDefault
,然后单击jQuery提交按钮:
$(Document).ready(函数(){)
$("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();
},
});
https://stackoverflow.com/questions/71225562
复制相似问题