Javascript onunload表单提交不提交数据

时间:2010-04-16 07:49:56

标签: javascript-events form-submit onunload

我目前有一个表单,用于检查用户是否在通过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 个答案:

答案 0 :(得分:3)

尝试 onbeforunload

  

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

同样在函数末尾给出return false,以了解不应提交数据的条件。