Страница обновляется до закрытия диалогового окна jQuery - PullRequest
1 голос
/ 03 февраля 2012

Я создал функцию, которая заменяет функцию window.alert моей собственной функцией, которая использует jquery.dialog. Проблема в том, что в некоторых функциях я вызываю эту функцию и сразу же перезагружаю страницу. Он должен обновлять его, когда пользователь нажимает «ОК», но он сам перезагружает страницу, прежде чем я нажимаю «ОК».

Вот пример последовательности вызовов в функции:

function UpdateCertSucccess(result) {
customAlert("Hello World");
window.location.href = "./SomePage.aspx";
}

А вот мое определение customAlert()

function customAlert(message) {
if (!isOpen) {
    $('#error-message-dialog').dialog({
        autoOpen: false, bgiframe: true, position: ['center', 100], modal: true, zIndex: '6000', title: 'R+L Carriers Message', width: 475, height: 250,
        buttons: {
            "OK": function () {
                $(this).dialog("close");
                isOpen = false;

            }
        }
    });
    var elements = message.split("|");
    $('#spMessage').text(elements[0]);
    $('#spCode').text(elements[1]);
    $('#spTime').text(elements[2]);
    $('#spServer').text(elements[3]);
    $('#error-message-dialog').dialog('open');
    isOpen = true;

       }
else {
    $('#spMessage').append("<br /><br />");
    $('#spMessage').append(message);
}
return false;

};

Что может быть причиной перезагрузки страницы перед тем, как я закрою диалог, и как я могу это исправить? Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Только всплывающие окна браузера (предупреждение, подтверждение ...) могут приостановить выполнение функции.Вы не можете достичь того же эффекта самостоятельно, поэтому вам нужно улучшить свой код, добавить функцию обратного вызова onclose или что-то в этом роде.

2 голосов
/ 03 февраля 2012

удалить 'window.location.href = "./SomePage.aspx";' из функции «UpdateCertSucccess ()» и поместите ее в вызов функции после нажатия кнопки «ОК» (нажмите кнопку «Обратный вызов», чтобы закрыть диалоговое окно)

...