Очень часто приходится редактировать свои данные с помощью больших форм. Иногда формы бывают ну просто неоправданно большие. Либо же само заполнение по-разным причинам занимает много времени (письмо, отчёт). Заполнив форму наполовину случайно не туда ткнуть пальцем - и страница или обновляется или делает back. А бывают ещё те мышки, у которых по бокам две жирные кнопяры. Эти кнопки в броузере играют роль ВПЕРЁД и НАЗАД. В общем данные теряются.

(кстати, только сейчас заметил, что у меня в ИЕ надпись back есть, а forward нет)
Дабы избавить пользователя своего сервиса от таких вот глупых неприятностей, можно ввести javascriptовую проверку, были ли изменены данные формы. Если изменения произошли - то запрашивать подтверждение типа “Осторожно, вы не сохранили ваши данные. Продолжить?”, если нет, то отпускать без лишних вопросов.
В двух словах:
нужно задать событие window.onbeforeunload. В нём делать проверку были ли произведены изменения в этом сеансе работы. если не было изменений возвращать window.undefined, в противном случае возвращать строку предупреждения. Самое интересное, что это делается средствами броузера. Он сам спрашивает “Are you sure you want to navigate away from this page?” (firefox), а Вам нужно указать только лишь возможные последствия того, что может случиться в случае незасабмичивания формы.
пример кода: onunload.zip (630 Байт)