dropzone.js 函数 getQueuedFiles 导致 "too much recursion"
dropzone.js function getQueuedFiles causes "too much recursion"
我正在使用 dropzone.js,我正在尝试检查队列中是否还有文件。
我有一个带有拖放区的表格。
通过单击表单的提交按钮,应首先上传文件,然后再提交表单。
我的 JavaScript 代码如下所示:
var fileDropzone = new Dropzone(document.getElementById('fileDropzone'),
{
url: uploadUrl,
addRemoveLinks: true,
autoProcessQueue: false,
autoDiscover: false,
dictDefaultMessage: transUploadFiles
}
);
var success = false;
$('form.uploadForm').submit(function (e) {
var that = this;
var filesInQueue = fileDropzone.getQueuedFiles().length;
if (!success && filesInQueue > 0) {
e.preventDefault();
fileDropzone.processQueue();
fileDropzone.on("success", function () {
fileDropzone.options.autoProcessQueue = true;
});
fileDropzone.on("queuecomplete", function (file) {
success = true;
$(that).submit();
});
}
});
为了检查队列中是否有文件,我使用函数 getQueuedFiles(),但这会导致控制台出现错误 "too much recursion"。
如果队列中没有文件,使用如下 if 语句会导致 console.log 出现 321 次。
if(fileDropzone.getQueuedFiles().length === 0) {
console.log("no files in queue");
}
我是不是做错了什么,或者是否有其他方法可以检查队列中是否还有文件?
尝试用 POJS that.submit();
替换 $(that).submit();
,这样可以保证在不重新触发 onsubmit 处理程序的情况下提交表单。
我正在使用 dropzone.js,我正在尝试检查队列中是否还有文件。
我有一个带有拖放区的表格。 通过单击表单的提交按钮,应首先上传文件,然后再提交表单。 我的 JavaScript 代码如下所示:
var fileDropzone = new Dropzone(document.getElementById('fileDropzone'),
{
url: uploadUrl,
addRemoveLinks: true,
autoProcessQueue: false,
autoDiscover: false,
dictDefaultMessage: transUploadFiles
}
);
var success = false;
$('form.uploadForm').submit(function (e) {
var that = this;
var filesInQueue = fileDropzone.getQueuedFiles().length;
if (!success && filesInQueue > 0) {
e.preventDefault();
fileDropzone.processQueue();
fileDropzone.on("success", function () {
fileDropzone.options.autoProcessQueue = true;
});
fileDropzone.on("queuecomplete", function (file) {
success = true;
$(that).submit();
});
}
});
为了检查队列中是否有文件,我使用函数 getQueuedFiles(),但这会导致控制台出现错误 "too much recursion"。
如果队列中没有文件,使用如下 if 语句会导致 console.log 出现 321 次。
if(fileDropzone.getQueuedFiles().length === 0) {
console.log("no files in queue");
}
我是不是做错了什么,或者是否有其他方法可以检查队列中是否还有文件?
尝试用 POJS that.submit();
替换 $(that).submit();
,这样可以保证在不重新触发 onsubmit 处理程序的情况下提交表单。