ここには同様の質問がたくさんありますが、フォームを送信した後(つまり、処理中に)ユーザーがページを離れるのを止めることを扱うものは見つかりませんでした。
Web サイトにフォームの送信に時間がかかるページがあるため (場合によっては 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?";
}
}
私が望んでいることを達成する方法はありますか?