我在表单页面上安装了以下js代码,以便在用户填写表单时尝试离开页面时提醒用户:
<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 :(得分:2)
你有几个选择。
发布时,可以设置全局标志,并在beforeunload函数中进行检查,并采取相应措施。
您可以在发布时删除beforeunload函数,方法是将其设置为空函数或不提示的函数。
答案 1 :(得分:2)
在表单的onsubmit
上,设置一个标志,告诉onbeforeunload
它可以忽略此卸载尝试。
例如:
<form ... onsubmit="window.nounloadcheck = true; return true;">
在你的onbeforeunload中,你可以这样做:
window.onbeforeunload = function (evt) {
if(window.nounloadcheck == true) return; // ignore
...