【问题标题】:Dropzone event handling not giving any life signDropzone事件处理没有给出任何生命迹象
【发布时间】:2014-02-03 18:16:19
【问题描述】:

我正在使用 dropzone 构建一个到在线存储 api 的接口,用于上传文件。我必须上传多个文件并在每次上传文件时进行 ajax 调用,以便添加下面隐藏表单的输入字段。这本身没什么大不了的,我只需要添加对 dropzone 的 init 属性的调用(我没有创建自定义 dropzone,我只是使用默认的)。所以在第 1581 行我写道:

  Dropzone.options = {
      init: function() {
            this.on("addedfile", function(file) { alert("added file"); });
          }

};

但是当我将 i 文件添加到 dropzone 时,什么也没有发生。 我正在处理多个文件,所以我调用了错误的事件吗?也许我应该调用successmultiple? this 是 dropzone 教程。有什么想法吗?

【问题讨论】:

  • 你的意思是直接修改插件代码吗?
  • 是的,这是正确的地方吗?
  • 不,你不应该触摸插件的代码
  • 我想也许我必须直接将代码写入 ajax 调用
  • 看看答案

标签: javascript dropzone.js


【解决方案1】:

如果你有一个表单,id="my-awesome-dropzone" 就像示例中一样

<form action="/file-upload"
      class="dropzone"
      id="my-awesome-dropzone"></form>

您必须在同一个文档中创建一个配置对象,即在标题中

<script src="./path/to/dropzone.js"></script>

<script >
//"myAwesomeDropzone" is the camelized version of the HTML element's ID

Dropzone.options.myAwesomeDropzone = {
  init: function() {
    this.on("addedfile", function(file) { alert("Added file."); });
  }
};

</script>

如果不是这个,你正在创建 dropzone

var myDropzone = new Dropzone("form.myFormClass"); //or something like this

您必须将选项添加为第二个参数

var myDropzone = new Dropzone("form.myFormClass", {
  init: function() {
    this.on("addedfile", function(file) { alert("Added file."); });
  }
});

【讨论】:

  • 我写了`id="my-awesome-dropzone"´ 但是页面源码中没有显示代码,就像是javascript覆盖了一样,脚本没有执行。
  • 但您是通过var myDropzone = new Dropzone("myform"); 或如何创建放置区的?
猜你喜欢
  • 2021-06-06
  • 2014-08-02
  • 2011-09-16
  • 1970-01-01
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多