0

我目前有一个表单,用于检查用户在离开页面时是否有未提交的更改,并使用通过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表单元素添加警报,我可以验证提交按钮是否被触发并且表单确实被提交。但是,没有任何东西通过存储在数据库中。关于我做错了什么的任何想法?

4

1 回答 1

3

尝试onbeforunload

卸载页面时在 unload 事件之前触发的事件。

还要return false在函数末尾给出不应该提交数据的条件。

于 2010-04-16T07:52:54.993 回答