Диалог подтверждения / диалог SweetAlert перед Ajax POST - PullRequest
0 голосов
/ 02 мая 2018

У меня есть функция Ajax POST, которая отправляет форму. В моей функции beforeSend () у меня есть диалоговое окно sweetAlert, которое прервет или продолжит вызов Ajax POST. Моя проблема в том, что функция успеха срабатывает до завершения beforeSend (), то есть не будет ждать, пока пользователь выберет один из параметров в диалоге sweetAlert. Как я могу приостановить вызов Ajax до завершения диалога sweetAlert?

$.ajax({
    method: "POST",
    url: url,
    data: data,
    beforeSend: function(data) {
        swal({
            buttons: ["No", "Yes"],
            successMode: true,
        }).then((yes) => {
            if (yes) {
                swal("Success", {
                    icon: "success",
                    buttons: false,
                });
            } else {
                data.abort()
            }
        });

    },
    success: function(data) {
       // success functions
    },

});

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Как я могу приостановить вызов Ajax до завершения диалога sweetAlert?

Ты не можешь. Это асинхронный.

Самое близкое, к чему вы могли бы прийти, - это всегда отменить запрос, а затем повторно отправить его (без прерывания) после того, как пользователь нажал «Да».

0 голосов
/ 02 мая 2018

Я не совсем уверен, чего вы пытаетесь достичь, но если я правильно понимаю, вы можете вставить ajax POST в сам swal.

...