2010-04-06 73 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