Я создал форму, используя 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.
У любого есть способ предотвратить обратную передачу с помощью кнопки отправки.