单个页面中多个拖放区的全局选项

Global option for multiple dropzone in a single page

我有多个表单,每个表单都有一个放置区。我已经基于此 link.

成功启动了 dropzones
var myDropzoneTheFirst = new Dropzone(
    '#form1',
    {
        url : "upload1",
        paramName: 'postedFile',
        addRemoveLinks: true,
        dictDefaultMessage: 'Drop files or click here to upload',
        ...
    }
);

var myDropzoneTheSecond = new Dropzone(
    '#form2',
    {
        url : "upload'",
        paramName: 'postedFile',
        addRemoveLinks: true,
        dictDefaultMessage: 'Drop files or click here to upload',
        ...
    }
);

除了 url 之外,每个拖放区的选项几乎相同。那么,如何集中选项,这样我就不必为其他 dropzone 编写相同的配置?

发生的一件事是您可以将 url 保存在一个数组中,然后在循环中使用它来为每个 dropzone 设置 url,这里是一个使用 dropzone 的示例jQuery 插件:

Dropzone.autoDiscover = false;

var urls = ['url1', 'url2'];

$('.dropzone').each(function(index){
    $(this).dropzone({
        url: urls[index],
        paramName: 'postedFile',
        addRemoveLinks: true,
        dictDefaultMessage: 'Drop files or click here to upload',
        // ...
    })
});

为了全局影响,您还可以像这样覆盖 dropzone 的默认配置:

Dropzone.prototype.defaultOptions.addRemoveLinks = true;
Dropzone.prototype.defaultOptions.dictDefaultMessage = 'Drop files or click here to upload';
Dropzone.prototype.defaultOptions.paramName= 'postedFile';

然后,使用@wallek876 解决方案。

所以我使用相同的代码,但是当我添加发送参数和新字段时它不起作用。

$(this).on("sending", function(a, b, c) {
  a.token = Math.random();
  c.append("token", a.token);
});

token 是新字段