单页中多个dropzone的全局选项

时间:2015-12-01 06:18:41

标签: jquery dropzone.js

我有多种形式,每种形式都有一个dropzone。我已根据此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',
        ...
    }
);

每个dropzone的选项几乎相同,但url除外。那么,如何集中选项,以便我不必为其他dropzone写相同的配置?

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

它发生的一件事是你可以将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',
        // ...
    })
});

答案 2 :(得分:0)

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

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

令牌是新字段