Dropzone不显示文件对话框

时间:2018-07-25 01:17:27

标签: javascript jquery dropzone.js

我想在显示文件对话框或显示其他内容之前检查身份验证(在我的情况下为带有“请登录”的表单形式的模式)。 当用户删除文件时,没有问题,因为我们不想看到文件对话框。但是,当用户单击#addphoto div时,它将无法正常工作。

代码如下:

myDropzone = new Dropzone(document.body, myDropzoneOptions).on('addedfile', function(file) {
    checkAuth(false);
}).on('sending', function(file, xhr, formData ) {
    formData.append("_token", $('meta[name="csrf-token"]').attr('content'));
});

function checkAuth(showFileDialog) {
    $.ajax({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        url: '/checkauth',
        method: 'GET',
    }).done(function(data) {
        if (showFileDialog) {
          myDropzone.hiddenFileInput.click();
        }
    }).fail(function(data) {
        $(document).trigger("verifyAuth", [ data ]);
    });
}

$(document).on('click', '#addphoto', function(e) {
    checkAuth(true);
});

知道ajax失败时,它可以工作并触发绑定到文档的verifyAuth事件(然后显示一些模式信息)。成功后(以.done()承诺),它可以访问变量myDropzone,但不能成功触发click事件,因此文件对话框永远不会出现。

0 个答案:

没有答案