Javascript Window.onbeforeunload和u dopostback不能正常工作
首先,我对Web表单和JavaScript还不熟悉,我花了两天时间在谷歌上搜索,没有结果。在用户退出页面之前,我试图询问用户是否要保存输入的数据。我有一个文本框,它告诉我是否执行了任何应该触发javascript if语句的输入。如果用户使用页面中包含的控件离开页面,则我的代码将正常工作。当他们单击右上角的X或选择“文件/退出”时,该选项不起作用。下面是我的代码Javascript Window.onbeforeunload和u dopostback不能正常工作,javascript,asp.net,onbeforeunload,dopostback,Javascript,Asp.net,Onbeforeunload,Dopostback,首先,我对Web表单和JavaScript还不熟悉,我花了两天时间在谷歌上搜索,没有结果。在用户退出页面之前,我试图询问用户是否要保存输入的数据。我有一个文本框,它告诉我是否执行了任何应该触发javascript if语句的输入。如果用户使用页面中包含的控件离开页面,则我的代码将正常工作。当他们单击右上角的X或选择“文件/退出”时,该选项不起作用。下面是我的代码 <script type="text/javascript" > var needToConfirm
<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>
我在上面的代码中有两个_udopostback语句,但是,直到代码的其余部分完成后,才真正发生回发。这意味着if语句失败,因此保存表单永远不会打开
如果你能给我任何帮助,我将不胜感激 您不应该从代码中调用doPostBack
这是一个只能由ASP.NET Web窗体调用以调用服务器端事件/代码的函数
如果检查_doPostBack函数的实现,您会注意到它提交了一个HTML表单
因此,您的程序永远不会达到再次调用doPostBack的程度 我把它们放进去是为了捕捉X和文件/退出事件。我以前使用代码隐藏打开保存表单。我有一些文本框,如果使用X或文件/出口,则不会激活其ContextChanged事件,因此我尝试了另一个路由。谢谢你能用伪代码解释一下当视图关闭时你想要完成什么吗。如果表单中出现了输入对不起,点击返回键。。。如果表单中发生了输入,我希望通过Postback后面的代码将隐藏的文本字段从False更改为True,并打开保存表单。如果没有输入,我希望浏览器退出。现在,如果用户在文本字段中并点击X或文件/出口,则不会发生最终回发。请查看本文: