Хотел немного расширить на Volomike отличный код jQuery.
Таким образом, у нас есть очень крутой и элегантный механизм для достижения цели предотвращения непреднамеренной потери данных путем перехода от обновленных данных до их сохранения, т.е. обновленное поле на странице, затем нажмите кнопку, ссылку или даже кнопку возврата в браузере, прежде чем нажимать кнопку Сохранить.
Единственное, что вам нужно сделать, это добавить тег класса «noWarn» ко всем элементам управления (особенно к кнопкам «Сохранить»), которые отправляют сообщения обратно на сайт, которые либо сохраняют, либо не удаляют обновленные данные.
Если элемент управления приводит к потере данных на странице, т.е. переходит на следующую страницу или очищает данные - вам ничего не нужно делать, поскольку сценарии автоматически отобразят предупреждающее сообщение.
Отлично! Молодец, Воломике!
Просто используйте код jQuery следующим образом:
$(document).ready(function() {
//----------------------------------------------------------------------
// Don't allow us to navigate away from a page on which we're changed
// values on any control without a warning message. Need to class our
// save buttons, links, etc so they can do a save without the message -
// ie. CssClass="noWarn"
//----------------------------------------------------------------------
$('input:text,input:checkbox,input:radio,textarea,select').one('change', function() {
$('BODY').attr('onbeforeunload',
"return 'Leaving this page will cause any unsaved data to be lost.';");
});
$('.noWarn').click(function() { $('BODY').removeAttr('onbeforeunload'); });
});