2009-09-20 94 views
1

我有一個表單,用戶可以提交信息。提交可能會成功或者不成功。表單提交後的jQuery UI對話框

在這兩種情況下,我都需要一個對話框來告訴用戶它是否成功。
頁面會在表單提交中加載。 Ergo,頁面不通過Ajax提供。

我知道如何通過點擊一個按鈕/鏈接等 觸發對話框但我怎麼能使用表單提交jQuery UI Dialog

UPDATE

我已經找到了解決辦法。 You can read the solution in this thread

+0

剛剛看到您的更新。 :/不知道我的回答:) – 2009-10-28 09:01:18

回答

0

您應該能夠將事件處理程序綁定到表單上的提交事件。

$("form_name_here").bind("submit", function(){$("dialog").open()}) 

或者任何方法是顯示對話框。我記不起我的頭頂。另一種選擇是使用jQuery表單插件,因爲我假設你使用ajax來提交表單。通過這種方式,您可以傳遞與提交表單相關的所有事件的方法。之前,之後,成功,失敗等。

+0

表單未使用Ajax提交。所以你的解決方案只會在點擊後顯示對話框,但在頁面重新加載之前。 – Steven 2009-09-20 17:57:21

+0

當頁面打開時,您的腳本應該嘗試打開對話框。服務器響應將不得不添加url參數或在腳本中設置一個變量以確定應用程序處於何種狀態(新建,失敗,成功)。我認爲這是你唯一的選擇,因爲你不使用ajax。 – ScottyUCSD 2009-09-20 21:43:26

1

不要使用type ='submit',而是將jQuery事件綁定到普通按鈕,通過ajax處理表單。當通過ajax獲得結果時,您可以在對話框中顯示ajax請求的結果(PHP在對話框中生成消息),也可以有條件檢查它是否成功,然後採取適當的操作。

下面是一個在表格中的例子。 (編碼有點草率)

$(document).ready(function() { 
     $('#submit').click(function() { 
      name = $('#name').val(); 
      email = $('#email').val(); 
      number = $('#number').val(); 
      message = $('#message').val(); 
      $.post("contact.php", //PHP file to send POST to 
      { ajax: 'yes', name: name, email: email, number: number, message: message }, //POST fields to send 
      function(returned) { //What to do if the POST finishes. 'returned' is the value recieved back from the script. 
       if (returned == 'done') { 
        //PHP script returns the word 'Done' 
         alert('Submit successful'); 
        });     
       } else { 
        alert('An error has occured'); 
}});});});