等待Sweetalert2异步确认,然后在bootstrap-fileinput中继续filepredelete事件

时间:2018-05-21 06:08:52

标签: javascript sweetalert2 kartik-v

插件Bootstrap文件输入和SweetAlert2

存在一些问题

这是为了显示一个对话框,以确认用户是否真的想要继续删除文件。

如果我要中止删除文件,我需要为filepredelete事件返回一个布尔值。该函数是同步的,但我使用带有promise的异步插件SweetAlert2。

这是我的代码:

$("#gallery-images").fileinput({
           ...

}).on("filepredelete", function(event, key, jqXHR, data) {

    swal({
        title: 'Are you sure you want to delete this image?',
        showCancelButton: true,
        confirmButtonText: 'Confirm',
        cancelButtonText: 'Cancel',
        type: 'warning',
    }).then((result) => {
        if(result.value){
            return false;
        }
        return true;
    });

});

我无法找到等待确认的方法。我想的是只是总是中止删除,只是在用户确认时手动删除文件。我需要重构我的代码。

1 个答案:

答案 0 :(得分:0)

尝试诺言,我已经在同一个问题上苦苦挣扎了3天,并弄清楚了,希望对您有所帮助。

$("#gallery-images").fileinput({
       ...

    }).on("filepredelete", function(event, key, jqXHR, data) {

    return new Promise(function(resolve, reject) {
            swal.fire({
                title: 'Are you sure?',
                text: 'You will not be able to recover this file!',
                icon: 'warning',
                showCancelButton: true,
                confirmButtonText: 'Yes, delete it!',
                cancelButtonText: 'No, keep it'
            }).then((result) => {
                if (result.value) {
                    resolve();
                }
            });
        });

    });

欢迎大家!