2011-01-13 61 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"); 
}); 

此外,如果您可以提供解決方案的鏈接,這將是一件好事。

我在正確的軌道上嗎?