【发布时间】:2015-04-27 19:02:22
【问题描述】:
下面是我为验证简单表单而编写的函数。您将看到三个日期字段:cadDocDate(必需)、cadRecDate(可选)、occyDate(可选),每个字段都使用自定义规则 camsDate。如果日期不是 MM/DD/YYYY 格式,则会显示来自该规则的验证消息。
问题在于cadDocDate 的日期验证文本 总是被必需的验证文本 覆盖。有没有办法以这样的方式编写它仅如果cadDocDate为空所需的验证文本显示,否则显示日期验证文本 em>?
addValidation: function (parent, el) {
$.validator.addMethod(
"camsDate",
function(value, element) {
return this.optional(element) || value.match(/(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d/);
},
"Dates must be entered in the format MM/DD/YYYY."
);
$(el).validate({
errorClass: "validation-error",
ignore: [],
rules: {
fileType: "required",
fileSubType: "required",
fileTitle: "required",
cadDocDate: {
camsDate: true,
required: true
},
cadRecDate: {
camsDate: true
},
cadDiscipline: "required",
phoCompass: "required",
occyDate: {
camsDate: true
},
},
messages: {
fileType: "File Type is a required field.",
fileSubType: "Sub Type is a required field.",
fileTitle: "Title is a required field.",
cadDocDate: "Document Date is a required field.",
cadDiscipline: "Discipline is a required field.",
phoCompass: "Compass direction is a required field."
},
onkeyup: function (element) {
$(element).valid();
fileCenter.ui.functionality.updateErrorCount(parent);
}
});
},
【问题讨论】:
标签: javascript jquery validation