如何在表单中放置dropzone但仍允许原始表单提交?

时间:2018-10-19 13:51:30

标签: javascript vue.js dropzone

我有一个表单,我想在其中放置一个dropzone。

我不想将图像与主表单一起提交,因为我将其详细信息存储在Session中,然后在提交表单时将文件名和其他详细信息存储在DB中。

但是,将投递箱放在表单中会使提交按钮停止工作。

我正在div ina Vue组件中创建放置区:

<div :id='"dropzoneform" + this._uid' class="dropzone">

然后以编程方式实例化它:

var form = this.$el;
this.dropzone = new Dropzone(form, {
  url: this.postUrl,
  headers: this.headers,
  // ...more settings...
}

自动检测也为假:

Dropzone.autoDiscover = false;

dropzone有效,并且可以按预期上传文件。但是我无法提交他们所使用的表单。我单击了按钮,但没有任何反应。

知道我要去哪里哪里吗?

编辑:这是按钮代码:

<button type="submit" class="booking-submit" name="button" @click.prevent="submit">Continue</button>

,并且submit函数有很多东西可以检查表单是否正确填写,并以:

结尾
if (submittable) {
  $('#form').submit();
}

我已经在其中放置了console.log,以确认它已经到达了。同样,在我放置dropzone之前,此表单也起作用。

1 个答案:

答案 0 :(得分:0)

我假设您正在使用 vue2-dropzone

您需要将autoProcessQueue选项设置为false。

https://www.dropzonejs.com/#config-autoProcessQueue

然后,您可以在发送文件之前先抓取文件:this.$refs.myVueDropzone.files

myVueDropzone是您实际提供的引用...

如果这不起作用,请尝试:this.$refs.myVueDropzone.dropzone.files