Как исчезнуть следы первого диалога, когда я открываю новый сладкий диалог предупреждения? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть кнопка удаления, когда пользователь щелкает ее. Мне нужно приятное предупреждение, которое запрашивает подтверждение, и как только пользователь нажимает «Да» и «Подтверждение», тогда я хочу, чтобы исчезло текущее уведомление о подтверждении и показать другое предупреждение, которое сообщает пользователю, что оно было удалено, а затем через 2 секунды.страница перезагружается.Я сделал это, но моя проблема в том, что когда пользователь нажимает на уведомление о подтверждении, он получает другое предупреждение, но с некоторыми следами предыдущего предупреждения.( это фрагмент, показывающий следы в красном прямоугольнике ) (я не загружал их сюда, потому что не могу из-за репутации).

мой js равен

function deleteUser(userRow) {
var objUserRow = jQuery.parseJSON(unescape(userRow));


swal({
    title: "Are you sure?",
    text: "You will not be able to recover this user again",
    type: "warning",
    showCancelButton: true,
    closeOnConfirm: false,
    showLoaderOnConfirm: true,
    closeOnClickOutside: false,
}, function (isConfirm) {


    if (isConfirm) {
        $.ajax({
            url: '../users/deleteUser',
            type: 'POST',
            data: objUserRow,
            success: function (data) {

                if (data == "success") {
                    //swal("User Deleted!");

                    swal({
                        title: "Deleted!",
                        text: "User has been deleted successfully!",
                        type: "success",
                        showConfirmButton: false,
                        closeOnClickOutside: false
                    });
                    setTimeout(function () { location.reload(); }, 2000);

                } else if (data == "error") {
                    //this could be due to server side validation or server side error 
                    swal("Error!", "An error has occured at server side", "error");
                }
            },
            error: function () {
                swal("Error!", "An error has occured at server side", "error");
            }

        });
    }



});


    }

Я не могу понять, что я делаю неправильно.Пожалуйста, помогите

1 Ответ

0 голосов
/ 19 октября 2018

Попробуйте использовать обещания https://sweetalert.js.org/guides/?_sm_au_=i0HmMJQJFSN6506q#using-promises

swal({
    title: "Are you sure?",
    text: "You will not be able to recover this user again",
    type: "warning",
    showCancelButton: true,
    closeOnConfirm: false,
    showLoaderOnConfirm: true,
    closeOnClickOutside: false,
}).then((isConfirm) => {


    if (isConfirm) {
        $.ajax({
            url: '../users/deleteUser',
            type: 'POST',
            data: {},
            success: function (data) {

                if (data == "success") {
                    //swal("User Deleted!");

                    swal({
                        title: "Deleted!",
                        text: "User has been deleted successfully!",
                        type: "success",
                        showConfirmButton: false,
                        closeOnClickOutside: false
                    });
                    setTimeout(function () { location.reload(); }, 2000);

                } else if (data == "error") {
                    //this could be due to server side validation or server side error 
                    swal("Error!", "An error has occured at server side", "error");
                }
            },
            error: function () {
                swal("Error!", "An error has occured at server side", "error");
            }

        });
    }



});
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
...