2010-04-06 28 views
2

我有一組12個複選框,全部使用相同的名稱(name =「4_RepPeriods」)。我正在使用Jquery驗證插件,我希望用戶選擇不多於或少於兩個這些複選框。Jquery驗證插件 - 需要2個複選框

如果可能的話,我也希望其他複選框在兩個選擇後變爲無效(不可點擊)。

我很感激幫助!謝謝!

+0

禁用其他複選框似乎是一個壞主意。如果用戶在意外檢查錯誤的框後想更改他們的選擇會怎麼樣? – 2010-04-06 19:54:27

+0

那麼如果他們沒有選中一個盒子,那麼剩下的就會再次啓用。但這是一個額外的功能,不是必須的,主要是尋找一個快速和骯髒的方式,以確保該組中只有2個複選框被選中並通過jQuery驗證進行驗證 – jethomas 2010-04-06 20:18:00

回答

1

您可以使用內置的驗證規則如下:

4_RepPeriods: { 
    minlength: 2, 
    maxlength: 2 
} 

或者,您可以添加自定義的方法,像這樣:

$.validator.addMethod('select2RepPeriods',function(v, e) { 
    return $('[name="4_RepPeriods"]:checked').length == 2; 
}, 'You must select exactly 2 rep periods'); 

然後在您的驗證,現在就可以只有這個:select2RepPeriods: true

+0

輝煌,謝謝。 – jethomas 2010-04-06 21:56:33

+0

事實上,對不起,它不工作,無論我選擇多少個複選框,都會給出錯誤...使用自定義方法。 – jethomas 2010-04-06 22:06:28

+0

@jethomas - 更新了與當前版本的驗證插件一起工作的示例,似乎方法調用發生了一些變化。 – 2010-04-06 23:22:51