2011-01-13 64 views
0

我正在使用JQuery和C#。如何从子页面关闭JQuery对话框

我的登录链接的点击打开一个jQuery模态窗口。然后我提交完整的表单和表单动作更改为我的/login.aspx页面,15秒钟,我显示ajax处理图像,并在login.aspx页面上验证用户输入的用户名和密码。可以有两种情况

1)用户输入有效的用户名和密码,在这种情况下,我在我的/login.aspx页面上进行验证后,再次重定向回到登录链接所在的页面,该功能是工作正常,因为我目前的页面被重新加载。

2)然而,当用户输入错误的用户名和密码,我一直/login.aspx页面上的用户(请注意,我不重定向回从那里用户点击登录链接的页面)。现在的问题是,当用户输入错误的用户名和密码,然后/login.aspx来了,但是如果用户之间点击浏览器后退按钮,然后我的对话框显示为打开,因为我已设置超时15秒。一旦用户输入错误的用户名和密码,我想关闭dailog框。

下面是Jquery的代码,我正在打开对话框。

$('#skywardsLogin').dialog({ 
         autoOpen: true, 
         width: 450, 
         modal: true, 
         title: $('.LoginpopupHeaderText').text() 
        }); 

在这里,我想提交表单,改变表单的动作,也我定超时15秒用于显示Ajax处理的图像。

$("#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处理图像。请建议

+0

什么问题?你在挣扎什么? closeDialog是否被调用? – selbie 2011-01-13 07:04:24

+0

所有工作正常如果我是一个相同的页面对话框正确关闭,但是当用户输入错误的用户名和密码,然后根据我的login.aspx代码中写入的代码它将驻留到login.aspx页面,否则它会被重定向回到登录链接被点击的同一页面,我担心的是我使用15秒超时显示ajax处理图像,如果用户输入了错误的值,并且他点击了浏览器后退按钮,我的对话框仍然显示ajax处理图像为超时15秒,然后关闭15秒。 – 2011-01-13 07:12:47

回答

1

我与吉东同意这是一个有点混乱。但让我们看看我是否正确理解你,让我们一步一步来做。

  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"); 
}); 

此外,如果您可以提供解决方案的链接,这将是一件好事。

我在正确的轨道上吗?