【问题标题】:How to wait for upload to finish before submitting the form如何在提交表单之前等待上传完成
【发布时间】:2016-03-20 14:08:51
【问题描述】:

我有一个通过 ajax 提交的表单(使用 Rails-ujs)。

我也使用 blueimp jquery-file-upload。

我希望表单提交因文件上传而停止。如果文件上传仍在进行中,表单提交应先等待文件上传完成,然后再继续。

目前我只是尝试停止提交,但即使这样也不起作用:

  $('form').on('ajax:before', function() {
    if ($('.fileInput').fileupload('active') > 0) {
      return false
    }
  })

【问题讨论】:

  • 您认为表单是在文件上传之前提交的?但事情是第一个文件被上传然后表单被提交;
  • 这个过程是用户可以先上传文件,多个文件。然后用户可以单击另一个表单提交。我不想提交这样的表格,直到所有文件都上传完毕。
  • 您想让用户一个一个提交多个文件,然后用户可以提交表单,那么您将如何管理表单提交之前上传的文件?
  • 我会将文件 url 作为隐藏输入插入到表单中。这就是为什么我希望在提交表单之前完成所有工作
  • 为什么不用$('form').on('submit'

标签: javascript ruby-on-rails jquery-file-upload


【解决方案1】:

如果 ajax:before 回调被传递一个表单提交事件,你的代码应该是:

$('form').on('ajax:before', function(submitEvent) {
    if ($('.fileInput').fileupload('active') > 0) {
      submitEvent.preventDefault();
    }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    相关资源
    最近更新 更多