【问题标题】:Using Dropzone inside a form在表单中使用 Dropzone
【发布时间】:2018-10-25 09:03:46
【问题描述】:

首先:这不是一个重复的问题,因为我没有找到任何有效的答案。

我正在尝试在表单中使用 Dropzonejs,documentation 也不起作用;那里的所有答案都不起作用。

我需要一个有效的示例,因为我已经尝试了很多示例和答案,但没有任何运气让它发挥作用。

请指教。

<form enctype="multipart/form-data" action="action" accept-charset="UTF-8" method="post" novalidate="novalidate" class="dropzone">
    <div class="row">
        <div class="col-xs-10">
        </div>
        <div class="col-xs-2" id="dropClickable">
            Drop Your File here...!!
        </div>
    </div>
</form>

<script>
    Dropzone.autoDiscover = false;
    jQuery(document).ready(function() {
        Dropzone.options.myAwesomeDropzone = {
            autoProcessQueue: false,
            uploadMultiple: true,
            parallelUploads: 100,
            maxFiles: 100,
            init: function () {
                // Do your update and process stuff
            }
        }
    })
</script>

还有;尝试了这个例子,没有任何工作:

https://github.com/enyo/dropzone/wiki/Combine-normal-form-with-Dropzone

这就是我得到的:

【问题讨论】:

  • 请分享您尝试过的和无效的:)
  • 大声笑你是什么意思文档不起作用?伙计,你有 1.1k 代表,你知道我们多么讨厌“它不起作用”
  • @LioraHaydont,已编辑。
  • @IsThisJavascript,对不起,伙计,但我对那个库和那里的答案感到非常沮丧,刚刚为你更新了我的答案。

标签: php jquery forms upload dropzone


【解决方案1】:

看起来 Dropzone 的东西在浏览器完成加载之前正在执行。

window.onload = function() {$(function() { 包装你的javascript

<script>     
$(function() {
    Dropzone.autoDiscover = false;
    jQuery(document).ready(function() {
        Dropzone.options.myAwesomeDropzone = {
            autoProcessQueue: false,
            uploadMultiple: true,
            parallelUploads: 100,
            maxFiles: 100,
            init: function () {
                // Do your update and process stuff
            }
        }
    })
})
</script>    

通过这些更改,代码现在可以在我的机器上运行;使用 jquery 3.3.1 和最新的 Dropzone

对于您的第二个示例; 我们打开开发工具(F12)去调试,我们看到:
Error: No URL provided.
点击进入该行告诉我们为什么......

 if (_this.options.url == null) {
  _this.options.url = _this.element.getAttribute("action");
}

if (!_this.options.url) {
  throw new Error("No URL provided.");
}    

所以如果我们设置(在&lt;form&gt;action= "test.php" 页面现在可以工作了。

【讨论】:

  • 谢谢,这适用于我提到的第一个代码,但不适用于第二个链接:github.com/enyo/dropzone/wiki/Combine-normal-form-with-Dropzone
  • @CairoCoder 更新了第二个代码的解决方案。
  • 谢谢你,你让我开心。我正在寻找解决方案,但没有人可以抓住它。这将帮助很多开发人员。 :)
猜你喜欢
  • 2018-06-14
  • 2020-12-11
  • 2014-08-16
  • 2017-02-13
  • 2023-01-31
  • 2015-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多