2012-09-29 46 views
0

我在表单页面上安装了以下js代码以提醒用户他是否在填写表单时尝试离开页面:如何在用户点击提交按钮时阻止退出javascript警告

<script type="text/javascript"> 
    window.onbeforeunload = function (evt) { 
    var message = 'Data you entered may not be saved'; 
    if (typeof evt == 'undefined') { 
    evt = window.event; 
    } 
    if (evt) { 
    evt.returnValue = message; 
    } 
    return message; 
    } 
</script> 

当用户点击其他链接或制表符以试图离开页面时,它可以正常工作。但即使用户单击提交按钮在表单中提交更改时,也会弹出javascript消息。

如何防止在提交表单时弹出此js消息?

+0

你必须绑定到'形式的submit'事件,并删除'onbeforeunload'结合。 –

回答

2

在窗体的onsubmit,设置一个标志,告诉onbeforeunload,它可以忽略此卸载尝试。

例如:

<form ... onsubmit="window.nounloadcheck = true; return true;"> 

而在你的onbeforeunload,你可以这样做:

window.onbeforeunload = function (evt) { 
    if(window.nounloadcheck == true) return; // ignore 
    ... 
+0

工程就像一个魅力。谢谢 – user1322707

2

你有几个选项。

  1. 当您发布您在beforeunload函数中检查并相应采取行动时,您可以设置全局标志。

  2. 您可以通过将其设置为空函数或仅提示的函数来删除beforeunload函数。

+0

其实,删除'onbeforeunload'绑定似乎是一个更好,更简单的选择。 – techfoobar

相关问题