使用分组向v​​alidate()添加规则

时间:2009-06-11 17:13:32

标签: jquery validation

表格如下: http://fuzzysiberians.com/app4.cfm?a=1

我正在使用:

$('#sec_ssn3').rules("add", {
    groups: {
        ssn:"sec_ssn1 sec_ssn2 sec_ssn3"
    }, 
    required:true,
    number: true,
    messages: {
        required: " <span style='color:red;'>Please enter co-applicant's social security number</span>"
    }
});

如果选中共同申请人复选框,我会要求共同申请人社会安全号码。分组有点工作,但我如何摆脱重复错误消息?一旦输入数字,最后一个甚至不会消失。主要申请人的ssn工作得很好。 在main validate()函数中,我添加了:

errorPlacement: function(error, element) {
    if (element.attr("name") == "ssn1" || element.attr("name") == "ssn2" || element.attr("name") == "ssn3" )
        error.insertAfter("#ssn3");
    else if (element.attr("name") == "sec_ssn1" || element.attr("name") == "sec_ssn2" || element.attr("name") == "sec_ssn3" )
        error.insertAfter("#sec_ssn3");
    else 
        error.insertAfter(element); 
}

由于某种原因,它不喜欢那样。

1 个答案:

答案 0 :(得分:5)

查看文档(http://docs.jquery.com/Plugins/Validation/validate#options)可能有更好的方法来设置规则。

以上链接示例:

$(".selector").validate({
   rules: {
     contact: {
       required: true,
       email: {
         depends: function(element) {
           return $("#contactform_email:checked")
         }
       }
     }
   }
});

使用“depends”选项,您可以根据要检查的coApp复选框在元素上设置验证。尝试将所有规则移至.validate()并添加

depends: function(element){ return $("#coApp").is(":checked"); }

所有共同申请人的验证。

试一试,让我知道。

不要忘记重新验证/解析服务器端!