[英]How to close the JQuery Dialog Box from the child page
我正在使用JQuery和C#。
我在单击登录链接时打开一个JQuery Modal对话框。 然后,我提交完整的表单,并将表单操作更改为我的/login.aspx页面,持续15秒钟,我将显示ajax处理图像,并在login.aspx页面上,验证用户输入的用户名和密码。 可能有两种情况
1)用户输入有效的用户名和密码,在这种情况下,我在/login.aspx页面上进行验证后,将再次从单击登录链接的页面重定向回该页面,此功能可以正常工作,因为我的当前页面已重新加载。
2)但是,当用户输入错误的用户名和密码时,我会将用户保留在/login.aspx页面上(请注意,我不会重定向回用户单击登录链接的页面)。 现在的问题是,当用户输入错误的用户名和密码时,/ login.aspx就会出现,但是如果介于两者之间的用户单击浏览器后退按钮,则我的对话框将显示为打开,因为我已将超时时间设置为15秒。 一旦用户输入了错误的用户名和密码,我想关闭弹出对话框。
下面是我打开对话框的Jquery代码。
$('#skywardsLogin').dialog({
autoOpen: true,
width: 450,
modal: true,
title: $('.LoginpopupHeaderText').text()
});
在这里,我尝试提交表单并更改表单操作,并且由于显示ajax处理图像而被给予15秒钟的超时时间。
$("#aspnetForm").attr("action", "http://localhost:8080/english/include/aspx/Login.aspx");
$("#aspnetForm").submit();
$('#divSuccessLogin').show();
// Wait for 15 seconds
setTimeout(closeDialog, 15000);
下面给出CloseDailog代码。
function closeDialog()
{
$('#skywardsLogin').dialog("close");
}
我正在努力关闭我的dailog框,因为超时了15秒才能显示ajax处理图像。 请建议
我同意Gidon,这有点令人困惑。 但是,让我们看看我是否正确理解了我们,然后逐步进行。
$().dialog()
) 这是我不太了解的最后一部分。 如果用户单击“后退”按钮,他们最终不会进入index.aspx吗?
又为什么要计时器? 没有ajax电话吗? $("#aspnetForm").submit();
将表单提交为普通的html表单,或者您正在使用某些方法覆盖jQuery的标准.submit()
无论如何,如果您想在ajax调用完成后调用某些东西,请不要使用计时器用法:
$(document).ajaxComplete(function() {
$('#skywardsLogin').dialog("close");
});
如果您可以提供该解决方案的链接,那也很好。
我在正确的轨道上吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.