Предупреждение Bootbox не появляется в коде $ .post (url, data) .done () - PullRequest
0 голосов
/ 29 января 2020

У меня есть следующий код, который отправляет форму со страницы jsp.

Вызов mywebpage.jsp возвращает ответ SOAP со всеми параметрами, которые используются в оповещениях.

Я знаю, что код выполняется правильно, потому что я вижу вывод console.log(). bootbox.alerts не всплывает. Я пытался использовать callback() на bootbox.alerts и bootbox.confirm и менять их на нормальные window.alert. Я все еще получаю те же результаты.

    $('form.myForm').submit(function (event) {
        var url = "mywebpage.jsp";
        var data = { param1: "value1", param2: "value2", param3: "value3"};
        $.post(url, data)
        .done(function(data) {
            console.log(data);
            var IErrCode = $(data).find("IErrCode").text();
            if (IErrCode==0)
            {
                console.log("Validate Sign IErrCode==0");
                bootbox.alert('Saved.<br>' + $(data).find("SOutMsg").text());
            } else {
                console.log("Validate Sign IErrCode!=0");
                bootbox.alert($(data).find("SErrDesc").text() + $(data).find("IErrCode").text());
            }
        })
        .fail(function(jqXHR, textStatus, errorThrown) {
            console.log(errorThrown +"(" + textStatus + ")");
            bootbox.alert( errorThrown +"(" + textStatus + ")");
        });
        return true;
    });

Есть ли способ, которым я могу реализовать это так, чтобы пользователь мог видеть всплывающие окна?

ОБНОВЛЕНИЕ

Я изменил $.post(url,data) на:

$.ajax({
    type: 'POST',
    url: url,
    data: data,
    async:false
})

Я понимаю, что это плохая практика, но это единственный способ заставить его работать. Теперь я вижу Bootbox.alerts, но они закрываются слишком быстро, чтобы прочитать их. Я попытался изменить их на Bootbox.confirms, но они все еще закрываются слишком быстро.

Есть ли другой способ заставить их оставаться открытыми, пока пользователь их не примет?

...