Javascript dropzone:submit按钮没有';未选择任何文件时无法工作
我有一个用于上传文件的dropzone表单,包含在一个标准表单中,其中包含2个输入文本,对于该表单,submit按钮(id=submit all)的行为由以下javascript部分控制(以便在单击按钮后上传所有文件): 单击该按钮后,所有文件都将按预期上载和处理,然后访问者将被重定向到页面“write.php?final=y”(祝贺消息)。 但是,当未选择任何文件时,此脚本不起作用:单击按钮完全无效 有人能帮我解决这个问题吗?Javascript dropzone:submit按钮没有';未选择任何文件时无法工作,javascript,dropzone.js,Javascript,Dropzone.js,我有一个用于上传文件的dropzone表单,包含在一个标准表单中,其中包含2个输入文本,对于该表单,submit按钮(id=submit all)的行为由以下javascript部分控制(以便在单击按钮后上传所有文件): 单击该按钮后,所有文件都将按预期上载和处理,然后访问者将被重定向到页面“write.php?final=y”(祝贺消息)。 但是,当未选择任何文件时,此脚本不起作用:单击按钮完全无效 有人能帮我解决这个问题吗? 非常感谢您的回复 queuecomplete没有发出,因为没有文件
非常感谢您的回复 queuecomplete没有发出,因为没有文件
Dropzone.options.myDropzone = {
// Prevents Dropzone from uploading dropped files immediately
autoProcessQueue: false,
uploadMultiple: true,
init: function() {
var submitButton = document.querySelector("#submit-all");
myDropzone = this; // closure
submitButton.addEventListener("click", function() {
if (myDropzone.getUploadingFiles().length === 0 && myDropzone.getQueuedFiles().length === 0) {
location.href = 'write.php?final=y';
}
else {
myDropzone.processQueue();
}
});
}
};
还有一种手动发出事件的方法,只需简单使用即可
this.emit("signalname");
以及活动列表
Dropzone.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "addedfiles", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached", "queuecomplete"];
当dropzone中没有文件时,你为什么希望submit按钮工作?@Martin:因为submit按钮会触发几件事:当选中一些文件时,上传和处理图片,但是还要发送一封确认电子邮件,最后重定向到另一个页面。@马丁:我忘了提到表单还包含两个输入文本标记可能是“谢谢”的副本,但它不起作用:无论是否选择了某些文件,单击“提交”按钮都不会产生任何影响。这对我有效,请检查控制台日志,查找“全部提交”按钮可能有问题。我从控制台日志中收到以下消息:“抛出值异常:TypeError:this.getUploadingFiles不是函数。(在“this.getUploadingFiles()”中,“this.getUploadingFiles”未定义)工作正常。非常感谢亚当!
Dropzone.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "addedfiles", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached", "queuecomplete"];