ユーザーがASP.Netページを予期せず離れるときに、ユーザーが離れてもよいかどうかを尋ねるメッセージを表示するように促す必要があります。ポストバックまたは保存ボタンがクリックされたときに警告が表示されないようにする必要があります。これをカバーする記事はたくさんありますが、私はこれにまったく慣れておらず、私のワイヤーを交差させたようです。
推奨される方法は、window.onbeforeunloadイベントを使用することのようですが、私にとっては予期しない動作をします。これは、ページがアンロードされるときではなく、ページがロードされるときに発生します。
<script language="JavaScript" type="text/javascript">
window.onbeforeunload = confirmExit;
function confirmExit() {
return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?";
}
</script>
JQuery実装を使用すると、ページがアンロードされたときに起動しますが、問題は、コードビハインドが実行される前に起動することです。そのため、ポストバックまたは保存であるため、今回はイベントを発生させないという変数をクライアントに設定することはできません。
$(window).bind('beforeunload', function () {
return 'Are you sure you want to leave?';
});
私が基本的な間違い/誤解をしていることを知っているので、誰かが私を正しい方向に向けることができますか?
編集:
だから私はもうすぐそこにいます:
var prompt = true;
$('a').live('click', function () {
//if click does not require a prompt set to false
prompt = false;
});
$(window).bind("beforeunload", function () {
if (prompt) {
//reset our prompt variable
prompt = false;
//prompt
return true;
}
})
問題が上記のコードにある場合を除いて、クリックを区別できる必要がありますが、まだそれを理解できていません。つまり、ここで条件が欠落しています。"//クリックでプロンプトをfalseに設定する必要がない場合"。
何か案は?
ありがとう、マイケル