jquery validate plugin:添加自定义方法

时间:2010-04-16 21:32:25

标签: jquery jquery-validate validation

我需要一些关于如何将验证方法添加到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");
                    }
                }
            }
        }
        ,
...

1 个答案:

答案 0 :(得分:2)

为什么不将收音机作为必需的元素,每个子问题都是必需的元素,但取决于相关的收音机?您应该只需添加规则即可完成此操作。如果每组复选框具有相同的名称,将会更容易。

$("form").validate({
     rules: {
         "Season": "required",
         "SpringWeeks": {
              required: {
                   depends: function() {
                       return $(".seasonSelector:checked").val() == "Spring";
                   }
              }
         }
         ...
});

<input type="radio" name="Season" value="Spring"  />
...