Остановить обратную передачу с помощью кнопки «Отправить» при предупреждении пользователей, что они покидают форму с несохраненными данными - PullRequest
0 голосов
/ 29 декабря 2011

Я создал форму, используя C #. Чтобы предупредить пользователей об уходе с сайта до внесения изменений, я добавил этот JavaScript

var warnMessage = "You have entered new data on this page.  If you navigate away from this page without first saving your data, the changes will not be saved. To save your data, click the Cancel button, then save your data before leaving this page.";

var g_isPostBack = false;

function windowOnBeforeUnload() {
    if (g_isPostBack == true)
        return; // Let the page unload

    if (window.event)
        window.event.returnValue = warnMessage; // IE
    else
        return warnMessage; // FX
}

window.onbeforeunload = windowOnBeforeUnload;

Когда вы покидаете страницу, все работает нормально. Проблема в том, что он также срабатывает даже после сохранения данных формы.

Когда вы нажимаете кнопку «Отправить», происходит обратная передача, которая устанавливает для переменной g_isPostback значение false.

У любого есть способ предотвратить обратную передачу с помощью кнопки отправки.

1 Ответ

1 голос
/ 29 декабря 2011

У вас есть две опции, каждая из которых использует событие onSubmit вашей формы.

Опция A:

function formOnSubmit(e) {
    g_isPostBack = true;

}

Вариант B:

function formOnSubmit(e) {
    window.onbeforeunload = false;
}

Я бы порекомендовал вариант A на основе существующего кода.Не забудьте привязать onSubmit вашей формы к функции formOnSubmit().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...