我看到很多帮助为我页面上的任何类型的字段编写自定义jQuery验证,但是我如何编写一个自定义验证方法,将多个字段的值考虑在内(跨文件验证)?我想我应该$.validator.addMethod
添加我的自定义方法,然后将规则添加到验证器对象(而不是特定字段),但我遇到了麻烦句法。有人可以帮忙吗?
例如,
我有两个字段:日期和时间。我的表格仅在以下情况下有效:
答案 0 :(得分:1)
您确实需要一些自定义规则,但每种验证方法都不需要考虑多个字段。在我看来,您需要三个不同的规则:必需应用于两个字段(已经内置),然后是时间规则的自定义规则(早上6点 - 下午6点)和日规则(不能是星期日):
$.validator.addMethod("notsunday", function (value, element) {
var date = Date.parse(value);
return this.optional(element) || (date && date.getDay() !== 0);
});
$.validator.addMethod("businesshours", function (value, element) {
var time = Date.parse(value);
return this.optional(element) ||
(time && (time.getHours() >= 6 && time.getHours() <= 18));
});
$(document).ready(function() {
$("#test").validate({
rules: {
date: {
required: true,
notsunday: true
},
time: {
required: true,
businesshours: true
}
},
messages: {
date: {
notsunday: "Can't be a Sunday!"
},
time : {
businesshours: "Must be between 6AM and 6PM"
}
}
});
});
示例: http://jsfiddle.net/andrewwhitaker/7KFgn/
注意该示例使用DateJS来简化日期分析。