2012-01-16 18 views
3

我的JavaScript代碼提供了一個對話框,用於請求用戶的一些信息,以及兩個按鈕(「確定」和「取消」)。我想使用dialogbeforeClose處理程序在用戶單擊確定按鈕時驗證輸入(以便如果用戶沒有進行正確的輸入,他/她仍然處於「進入」對話框並有機會糾正它)。有沒有辦法告訴我哪個按鈕被按下了? (顯然,如果用戶按下取消,則不需要輸入驗證,對話框可以繼續並關閉 - 即我的beforeClose可返回true)。我看到beforeClose需要兩個輸入,eventui,但它們都不包含我想要的信息。(JQuery-UI)有沒有辦法檢測在對話框的beforeClose()處理程序中按下了哪個按鈕?

回答

0

我的這些都在我的應用程序之一,而非裁切周圍的自定義驗證我只是扔在inline validation對話框中的形式。它會爲你做攔截,輕鬆驗證領域,如果它是正確的,讓它飛。如果沒有,它會自動進行通知。

你當然可以家釀這個解決方案,但有人已經爲你完成了這項工作。保存您的代碼以解決更大的問題。

如果您決定自己動手,只需按照文檔中所述將操作置於按鈕功能中即可。

+0

沒有想到內聯驗證的想法,也沒有意識到您鏈接到的插件。謝謝! – 2012-01-16 22:05:39

2

您只需在關閉框之前綁定一些其他函數(並且如果表單不驗證,則不要調用關閉)。只需在$(this).dialog(「close」)之前添加所需的任何檢查或ajax調用即可。 來源:http://jqueryui.com/demos/dialog/#modal-confirmation

<script> 
    $(function() { 
     // a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore! 
     $("#dialog:ui-dialog").dialog("destroy"); 

     $("#dialog-confirm").dialog({ 
      resizable: false, 
      height:140, 
      modal: true, 
      buttons: { 
       "Delete all items": function() { 
        $(this).dialog("close"); 
       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 
    </script> 
相關問題