这里有很多类似的问题,但我没有找到任何一个处理在提交表单(即在其处理期间)后阻止用户离开页面的方法。
我在我的网站上有一个页面,其中包含一个需要长时间提交的表单(有时长达15秒),因此我想要弹出警告来在用户提交表单后让他们留在页面上。
问题是,无论我如何尝试使用 window.onbeforeunload
,当表单被提交时,我总是从该函数得到一个确认对话框,这不是我想要的。我不希望用户在提交表单时得到确认对话框,而是在提交后并且只有在他们尝试离开页面时才会得到该对话框。
HTML:
<form id="myform" method="post" action="" onsubmit="formSubmitted();">
<button type="submit" onclick="return checkForm();">submit form</button>
</form>
Javascript:
formSubmittedFlag = 0;
function checkForm()
{
...
if(...)
{
return true;
}
else
{
return false;
}
}
function formSubmitted()
{
formSubmittedFlag = 1;
}
window.onbeforeunload = function()
{
if(formSubmittedFlag == 1)
{
return "Are you sure you want to leave the page?";
}
}
有没有一种方法可以实现我想要的内容?