2010-02-01 112 views
1

我想驗證一個表單,如果複選框沒有被選中,需要使用幾個元素。Jquery驗證:在複選框更改後使用不同的規則重新驗證驗證後的表單

現在,如果我提交表單,規則會觸發 - 然後選中複選框 - 驗證規則已經被觸發 - 即使複選框現在被選中 - 驗證規則仍然適用,表單將不會提交,直到我進入領域。

我希望是複選框可以打開或關閉規則。任何幫助非常感謝。

var validator = $(".cmxform").validate({ 
       rules: { 
        txtAddress1: { 
         required: function(){ 
          $('#chkCurrentEmployer').attr('checked') !== "true" 
        } }, 
        txtAddress2: { 
         required: function(){ 
          $('#chkCurrentEmployer').attr('checked') !== "true" 
        } } 
       } 
      }); 

回答

2

使用required(dependency-expression)規則

var validator = $(".cmxform").validate({ 
    rules: { 
    txtAddress1: { 
     required: "#chkCurrentEmployer:checked" 
    }, 
    txtAddress2: { 
     required: '#chkCurrentEmployer:checked' 
    } 
    } 
}); 

文檔瀏覽:http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression

如果這些函數返回這樣的事情

return $('#chkCurrentEmployer').attr('checked'); 
+0

感謝您的代碼也可以工作,還我找到了在出現錯誤時運行的「invalidHandler」方法。當事情有效時是否有任何處理程序或事件運行?我希望我的提交按鈕淡出,直到所有事情都通過驗證,想法? – TheExit 2010-11-02 20:25:17