如何使用Dropzone.js禁用可点击的表单?

net*_*djw 12 javascript jquery dropzone.js

我正在使用Dropzone.js上传文件到服务器.我将我的Dropzone maxFiles参数设置为10,我尝试了这个:

$('.dropzone').dropzone({
    maxFiles: 10,
    init: function() {
        this.on('maxfilesreached', function() {
            $('.dropzone').unbind('click');
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

......但没有工作.从.dropzone或其他任何方式删除可点击以阻止用户添加更多文件的解决方案是什么?

XuD*_*ing 30

为什么不使用CSS来禁用click事件.当达到最大文件时,Dropzone将自动添加一类dz-max-files-reached.

使用css禁用点击dropzone:

.dz-max-files-reached {
  pointer-events: none;
  cursor: default;
}
Run Code Online (Sandbox Code Playgroud)

  • 当显示"删除链接"时,另外使用`.dz-remove {pointer-events:all; cursor:default; }'让他们可以点击. (5认同)
  • 请记住`指针事件'仅适用于IE11及以上版本... okok,只有我必须绊倒这个糟糕的旧IE版本.但是虽然;) (2认同)
  • 通过这个解决方案,我仍然可以将更多文件拖放到 _dropzone_ 上。 (2认同)

小智 12

这完美地工作!并适用于4.0.1

//disable the click of your clickable area
$(".dz-hidden-input").prop("disabled",true);

//enalbe the click of your clickable area
$(".dz-hidden-input").prop("disabled",false);
Run Code Online (Sandbox Code Playgroud)


小智 6

myDropzone.on('maxfilesreached', function() {
    myDropzone.removeEventListeners();
});
myDropzone.on('removedfile', function (file) {
    myDropzone.setupEventListeners();
});
Run Code Online (Sandbox Code Playgroud)

如果您的服务器中有文件,请不要忘记init _updateMaxFilesReachedClass.

myDropzone._updateMaxFilesReachedClass()
Run Code Online (Sandbox Code Playgroud)