ASP.NET WebアプリケーションのDetectonbeforeunloadを探していたのですが、マスターページとコンテンツページでASP.NETを使用しているページで、入力コントロールが変更された場合に警告メッセージを表示する必要があります。マスターページで3つのコンテンツプレースホルダーを使用していますが、最後のプレースホルダーはフォームの後にあります
<form runat="server" id="myForm">
したがって、フォームの終了タグの後、本文の終了タグの前にこのスクリプトを使用しました
<script>
var warnMessage = "Save your unsaved changes before leaving this page!";
$("input").change(function () {
window.onbeforeunload = function () {
return 'You have unsaved changes on this page!';
}
});
$("select").change(function () {
window.onbeforeunload = function () {
return 'You have unsaved changes on this page!';
}
});
$(function () {
$('button[type=submit]').click(function (e) {
window.onbeforeunload = null;
});
});
</script>
バインディングに関する限り、beforeunloadはこの方法では確実に機能しません。ネイティブに割り当てる必要があります
したがって、このバインドのように機能し、バインド解除も機能しませんでした。jQuery1.7以降では、イベントAPIが更新され、下位互換性のために.bind()/。unbind()を引き続き使用できますが、推奨される方法は次のとおりです。 on()/ off()関数を使用します。