【问题标题】:How to close the JQuery Dialog Box from the child page如何从子页面关闭 JQuery 对话框
【发布时间】:2011-01-13 06:56:09
【问题描述】:

我正在使用 JQuery 和 C#。

我在单击登录链接时打开一个 JQuery 模式对话框。然后我提交完整的表单,表单操作更改为我的 /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"); 
}

我正在努力关闭我的对话框,因为显示 ajax 处理图像的超时时间为 15 秒。请建议

【问题讨论】:

  • 有什么问题?你在挣扎什么? closeDialog 是否被调用?
  • 一切正常如果我是一个相同的页面对话框正在正常关闭,但是当用户输入错误的用户名和密码时,根据我的 login.aspx 代码中编写的代码,它将驻留在login.aspx 页面,否则它将被重定向回单击登录链接的同一页面,我担心的是我使用 15 秒超时来显示 ajax 处理图像,如果用户输入了错误的值并且他点击了浏览器后退按钮我的对话框仍然显示 ajax 处理图像,因为超时时间为 15 秒,15 秒后它关闭。
  • 有点混乱。你为什么使用计时器?为什么不点击登录时只显示对话框(没有计时器)?

标签: c# jquery


【解决方案1】:

我同意 Gidon 的观点,这有点令人困惑。但是让我们看看我是否理解正确,让我们一步一步来。

  1. 用户来到一个页面,比如说 index.aspx。
  2. 用户单击打开对话框的链接(使用$().dialog()
  3. 在新对话框中,用户输入他们的用户名/密码。
  4. 按下提交按钮时,您会更改 aspnetForm 的操作并提交表单。
  5. 如果信息不正确,用户仍在 login.aspx 上。
  6. 用户使用浏览器的后退按钮
  7. 会发生什么?

这是我不太明白的最后一部分。如果用户点击后退按钮,他们最终不是在 index.aspx 上吗?

为什么还有计时器?有没有ajax调用? $("#aspnetForm").submit(); 将表单作为普通 html 表单提交,或者您是否使用某些东西来覆盖 jQuery 的标准 .submit()

在任何情况下,如果您想在 ajax 调用完成后调用某些东西,请不要使用计时器:

$(document).ajaxComplete(function() {
    $('#skywardsLogin').dialog("close"); 
});

如果你能提供一个解决方案的链接,那就太好了。

我是否走在正确的轨道上?

【讨论】:

  • 感谢您的回复,我将在您的步骤中更正一些内容。 4) # 当按下提交按钮时,您更改 aspnetForm 的操作并提交表单,现在我的处理图像出现超时 10 秒,在 login.aspx 之间出现在验证用户名和密码后再次重新加载索引的图。 aspx 页面,如果它是有效页面,但是如果不正确的用户仍在 login.aspx 页面上,然后如果用户单击浏览器后退按钮,它仍然显示我的处理图像。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
相关资源
最近更新 更多