まず、私は Web フォームと JavaScript の初心者であり、Google で 2 日間検索しても結果が得られませんでした。ユーザーがページを終了する前に、入力したデータを保存するかどうかをユーザーに尋ねようとしています。javascript ifステートメントをトリガーする入力が実行されたかどうかを示すテキストボックスがあります。ユーザーがページ内に含まれるコントロールを使用してページから離れた場合、私のコードは機能しています。右上隅の [X] をクリックするか、[ファイル]/[終了] を選択しても機能しません。以下は私のコードです。
<script type="text/javascript" >
var needToConfirm = "False";
var hdnNeedToConfirm = ""
window.onbeforeunload = confirmExit;
function confirmExit() {
__doPostBack('<%= Page.Master.FindControl("MainContent").FindControl("PADForm").ClientID %>', '');
__doPostBack('<%= Page.Master.FindControl("MainContent").FindControl("HiddenPanel").ClientID %>', '');
hdnNeedToConfirm = document.getElementById('<%= Page.Master.FindControl("MainContent").FindControl("HdnNeedToConfirm").ClientID %>');
if (hdnNeedToConfirm != null)
needToConfirm = hdnNeedToConfirm.value;
else
needToConfirm = "False";
if (needToConfirm == "True")
window.open("SaveOrLose.aspx");
}
</script>
上記のコードには 2 つの __dopostback ステートメントがありますが、コードの残りの部分が完了するまで、ポストバックは実際には発生しません。つまり、if ステートメントが失敗するため、保存フォームは開かれません。
あなたが与えることができる助けをいただければ幸いです!!