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

CFN*_*nja 3 validation jquery

表格位于: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>"
    }
});
Run Code Online (Sandbox Code Playgroud)

如果选中共同申请人复选框,我会要求共同申请人社会安全号码.分组有点工作,但我如何摆脱重复错误消息?一旦输入数字,最后一个甚至不会消失.主要申请人的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); 
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它不喜欢这样.

小智 5

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

以上链接示例:

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

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

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

对于所有共同申请人的验证.

给那个镜头让我知道.

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