单个字段上的多个验证+ $ .validator

时间:2010-12-09 05:16:54

标签: jquery jquery-validate

如何在jQuery中的单个字段上调用多个验证函数。

如下

在线多次验证:

JobDayofWeek:{isValidJOW:true}, JobDayofWeek:{regex:“^ [1-7] $ | ^(\ s * [1-7] + \ s *,\ s *)+ [1-7] $”},

var isValidJOW = function isJOWValid(value) {
        var newTemp = getDataforNewTemplate();
        if (newTemp.AutoResubmitFlag == 'N' && value == '') {
            return true;
        }
        else {
            return false;
        }
    }

 $.validator.addMethod("isValidJOW", function (value, element) {
        var newTemp = getDataforNewTemplate();
        return isValidJOW(newTemp.JobDayofWeek);
    }, 'Job Day of Week Mandatory when auto resubmit flag is set to Y');

    $.validator.addMethod("regex", function (value, element, regexp) {
        var check = false;
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    }, "The list of values 1(Sunday) to 7 (Saturday).  For multiples enter the following 1,2,3...");


     $(document).ready(function () {
        $("#maintTempForm").validate({
            rules: {
                JobTypes: { isValidJobType: true },
                ExecutableName: { required: true },
                ExecutableType: { isValidJExecutableType: true },
                JobDayofWeek: { isValidJOW: true },
                JobDayofWeek: { regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" },
                JobFrequency: { regexJobFrequency: "^[1-365]$" },
                AutoResubmitFlag: { isValidFlag: true }

            },
            messages: {
                ExecutableName: "Please Enter Valid Executable Name"

            }
        });
    });

这始终仅验证第一个。

1 个答案:

答案 0 :(得分:0)

规则:

rules: {
    //...
    JobDayofWeek: { isValidJOW: true },
    JobDayofWeek: { regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" }
    //...
}

只是一个对象文字,因此,单个字段不能有多个值。 JavaScript解析器在构建文字时只使用其中一个JobDayofWeek值,它将使用哪一个可能是实现定义但可能不是。

此规则集会发生什么?

rules: {
    JobTypes: { isValidJobType: true },
    ExecutableName: { required: true },
    ExecutableType: { isValidJExecutableType: true },
    JobDayofWeek: { isValidJOW: true, regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" },
    JobFrequency: { regexJobFrequency: "^[1-365]$" },
    AutoResubmitFlag: { isValidFlag: true }
},

我所做的只是将两个JobDayofWeek值合并为一个。这应该有用。