Отправка формы Javascript при выгрузке не отправляет данные

В настоящее время у меня есть форма, которая проверяет, есть ли у пользователя неотправленные изменения, когда они покидают страницу с помощью функции, вызываемой через событие onunload. Вот функция:

function saveOnExit() {
    var answer = confirm("You are about to leave the page. All unsaved work will be lost. Would you like to save now?");
    if (answer) {
       document.main_form.submit();
    }
}

И вот форма:

<body onunload="saveOnExit()">
<form name="main_form" id="main_form" method="post" action="submit.php" onsubmit="saveScroll()">
    <textarea name="comments"></textarea>
    <input type="submit" name="submit2" value="Submit!"/>
</form>

Я не уверен, что я делаю неправильно здесь. Данные отправляются и сохраняются в моей базе данных, если я просто нажимаю кнопку отправки для формы. Однако, насколько я могу судить, попытка отправить форму через событие onunload не приводит к сохранению чего-либо. Я попытался добавить оповещения onclick к кнопке отправки и оповещения onsubmit к элементам формы, и я могу убедиться, что кнопка отправки срабатывает и что форма действительно отправляется. Однако ничего не передается в базу данных. Любые идеи относительно того, что я делаю неправильно?


person holic87    schedule 16.04.2010    source источник


Ответы (1)


Попробуйте onbeforunload

Событие, которое срабатывает перед событием выгрузки, когда страница выгружается.

Также дайте return false в конце функции для условия, при котором данные не должны отправляться.

person rahul    schedule 16.04.2010
comment
Спасибо за предложение onbeforeunload. Я переделал свой код и заставил его работать по-другому. - person holic87; 19.04.2010