代码之家  ›  专栏  ›  技术社区  ›  CairoCoder

在窗体内使用Dropzone

  •  1
  • CairoCoder  · 技术社区  · 6 年前

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

    我试图在表单中使用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

    这就是我得到的:

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   IsThisJavascript    6 年前

    看起来Dropzone内容是在浏览器完成加载之前执行的。

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

    <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.");
    }    
    

    所以如果我们在 <form> ) action= "test.php" 该页面现在可以使用了。