我需要一些关于如何将验证方法添加到jquery validate插件的指导。我已经收集到了我需要使用插件的addMethod()函数,但是如何让它做我需要的...我在这里!
我的表单的第一个问题是无线电输入选择。每个无线电输入(如果选择)显示几个复选框的子问题。
我希望我的验证是: - 确保选择了一个无线电输入 - 确保至少选择了一个与收音机输入有关的复选框。
基本上,在validate插件自己的逻辑中,我会计算选择器的长度,如果没有,则返回错误消息。像这样:
var weekSelected = ($('input.seasonSelector:checked input.weekSelector:checked',form).length > 0);
if(!weekSelected){
return 'Please select a week inside that season';
}
如何将其转换为验证插件方法?
更新
根据您的反馈,这是成功的答案:
$('#newInscription').validate({
rules: {
"season_id": "required",
"weeks[]": {
required: {
depends: function() {
return $(this).parents(".seasonSelector:checked");
}
}
}
}
,
...
答案 0 :(得分:2)
为什么不将收音机作为必需的元素,每个子问题都是必需的元素,但取决于相关的收音机?您应该只需添加规则即可完成此操作。如果每组复选框具有相同的名称,将会更容易。
$("form").validate({
rules: {
"Season": "required",
"SpringWeeks": {
required: {
depends: function() {
return $(".seasonSelector:checked").val() == "Spring";
}
}
}
...
});
<input type="radio" name="Season" value="Spring" />
...