2010-04-16 92 views
0

我目前有一个表单,用于在用户通过onunload事件调用函数离开页面时检查用户是否有未提交的更改。这里的功能: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警报添加到submitt按钮并将提醒提交给表单元素,并且我可以验证提交按钮是否正在触发以及表单是否已提交。但是,没有任何数据通过存储在数据库中。任何想法,我做错了什么?

谢谢。

回答

3

尝试onbeforunload

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

此外还给return false在功能的末尾的数据不应该提交的条件。

+0

感谢onbeforeunload的建议。我回了我的代码,并以不同的方式工作。 – holic87 2010-04-19 02:59:54