2011-11-21 135 views
1

讓我們假設我有形式2鍵說按鈕btnAbtnB。我想用validate.js 來驗證我的形式,我嘗試:捕捉單擊事件和使用validate.js

var v = $("#form1").validate({ 
    ignore: ':hidden', 
    rules: { 
     if(--btnA is clicked--){ 
      txtMenuName: { required: true } 
     } 
     if(--btnB--){ 

      txtLinkTitle: { required: true }, 
      txtExternalLink: { required: true } 
     } 
    }, 
    messages: { 
     txtMenuName: "*", 
     review: "*", 
     txtLinkTitle: "*", 
     txtExternalLink: "*" 

    } 
}); 

,但我無法捕捉哪個按鈕是Click.Plz有助於解決我的問題。

+0

我沒有時間爲此寫一個正確的答案,但我認爲你錯了。您需要捕獲btnA和btnB的點擊事件,然後在那裏處理驗證呼叫。您可能還必須處理表單的提交事件。我對validate.js不熟悉,現在爲你寫代碼,對不起。 – mason81

+0

此外,在這種情況下知道有2個提交按鈕的目的是有幫助的......也許一個帶有收音機選項的按鈕會更好? – mason81

+0

@ mason81第一個按鈕創建菜單,並在數據庫中存儲第二個按鈕創建菜單item.any想法如何解決。謝謝。 –

回答

1

我試圖提交這個作爲編輯Baszz的答案,但我沒有權限,所以這裏是一些應該幫助的示例代碼。

$(function(){ 
    $('#btnA').click(function(){ 
     $(this).addClass('clicked'); 
     $('#btnB').removeClass('clicked'); 
    }); 
    $('#btnB').click(function(){ 
     $(this).addClass('clicked'); 
     $('#btnA').removeClass('clicked'); 
    }); 
}); 

var v = $("#form1").validate({ 
    ignore: ':hidden', 
    rules: { 
     if($('#btnA').hasClass('clicked'){ 
      txtMenuName: { required: true } 
     } 
     if($('#btnB').hasClass('clicked'){ 

      txtLinkTitle: { required: true }, 
      txtExternalLink: { required: true } 
     } 
    }, 
    messages: { 
     txtMenuName: "*", 
     review: "*", 
     txtLinkTitle: "*", 
     txtExternalLink: "*" 

    } 
}); 
0

我假設按鈕首先觸發驗證,所以您應該能夠通過點擊按鈕來查看'this'變量。否則,向點擊事件處理程序添加一個按鈕,將「單擊」類切換到當前按鈕,在您的驗證代碼中檢查該類的存在,並知道哪個按鈕被點擊。