0
首先,我是Web表單和JavaScript的新手,我花了兩天的時間搜索不到任何結果。我試圖在用戶退出頁面之前詢問用戶是否要保存他們輸入的數據。我有一個文本框,告訴是否有任何輸入已經執行,應該觸發javascript if語句。如果用戶使用頁面中包含的控件從頁面移開,我的代碼正在工作。當他們點擊右上角的X或選擇文件/退出時它不起作用。以下是我的代碼。Window.onbeforeunload和__dopostback不能正確協同工作
<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>
我在上面的兩個代碼__doPostBack語句,但是回發沒有實際發生後才代碼的其餘部分。這意味着if語句失敗,因此Save表單從不打開。
我會很感激任何幫助,你可以給!
我把它們放進去以捕捉X和File/Exit事件。我以前使用代碼隱藏來打開保存表單。如果使用了X或文件/退出,那麼我有文本框不會激活ontextchanged事件,因此正在嘗試其他路由。謝謝!! – dastokesh
你可以(用僞代碼)解釋當視圖關閉時你想完成什麼。 –
如果輸入發生的形式爲 – dastokesh