如何在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"
}
});
});
这始终仅验证第一个。
答案 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
值合并为一个。这应该有用。