Javascript onunload форма отправки не передает данные - PullRequest
0 голосов
/ 16 апреля 2010

В настоящее время у меня есть форма, которая проверяет, есть ли у пользователя неподтвержденные изменения, когда они покидают страницу с функцией, вызываемой через событие 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 к кнопке отправки и отправить оповещения на элементы формы, и я могу убедиться, что кнопка отправки запущена и форма действительно отправлена. Тем не менее, ничего не передается хранится в базе данных. Есть идеи, что я делаю не так?

Спасибо.

1 Ответ

3 голосов
/ 16 апреля 2010

Попробуйте onbeforunload

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

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

...