Проверить эту ссылку
Она дает вам информацию о том, как обрабатывать событие onbeforeunload.
Идея состоит в том, чтобы на странице был глобальный флаг. Когда в поля поменяются какие-либо изменения, этот флаг имеет значение true. При нажатии кнопки «Сохранить» этот флаг должен быть установлен на «false».
В событии onbeforeunload проверьте, является ли флаг истинным, а затем отобразите соответствующее сообщение.
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit()
{
if (needToConfirm)
{
// check on the elements whether any change has been done on the fields.
// If any change has been done, then set message here.
}
}
function saveClicked()
{
needToConfirm = false;
}