0

首先,我是 Web 表单和 JavaScript 的新手,我在谷歌上搜索了两天,没有任何结果。我试图在用户退出页面之前询问他们是否要保存他们输入的数据。我有一个文本框,它告诉是否已经执行了任何应该触发 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>

我在上面的代码中有两个 __dopostback 语句,但是在其余代码之后才真正发生回发。这意味着 if 语句失败,因此保存表单永远不会打开。

我会很感激你能给的任何帮助!!

4

1 回答 1

0

你不应该__doPostBack()从你的代码中调用。

这是一个只能由 ASP.NET Web 窗体调用以调用服务器端事件/代码的函数。

如果您检查__doPostBack()函数的实现,您会注意到提交了一个 HTML 表单。

因此,您的程序将永远不会到达第二次调用的地步__doPostBack()

于 2014-07-24T15:02:25.077 回答