我通常使用全名,电话号码,电子邮件和DOB字段的形式。我正在使用jQuery Validate插件(v 1.19.0)来验证表单,但在验证“出生日期”部分时卡住了。
出生日期实际上是三个下拉列表-ddlDays,ddlMonths和ddlYears。该字段不是是必填字段,但是:
1)如果任何下拉菜单中的值都不是默认值(0),则应启动验证并警告用户从所有三个下拉菜单中选择值。
2)如果全部选择了三个,则应检查所选日期是否有效。
我有适当的功能来检查上述2种情况,但是在将想法应用到插件时遇到困难。
我可以在插入验证插件之前检查DOB,但是拥有验证插件的逻辑不适合。因此,我很想知道是否有人可以给我一个指导,说明如何使用该插件实现此目标。任何想法都值得赞赏。
-----编辑------ //如果选择了任何日期则进行检查然后验证日期的代码
function validateDate()
{
var dd = $("#ddlDays");
var dm = $("#ddlMonths");
var dy = $("#ddlYears");
// check date was selected
if (dd[0].selectedIndex == 0 || dm[0].selectedIndex == 0 || dy[0].selectedIndex == 0)
{
console.log('date not selected')
return false;
}
// check date is valid
var date = new Date();
date.setFullYear(dy.val(), dm.val() - 1, dd.val());
var id = dy.val() + "-" + (dm.val() - 1) + "-" + dd.val();
var pd = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate();
if (id != pd)
{
//alert("date is invalid!");
console.log('date is not valid')
return false;
}
console.log('date is valid')
return true;
}
// CODE FOR VALIDATE PLUGIN
$("#frmPersonalInfo").validate({
rules: {
txtFullName: {
required: {
depends: function () {
$(this).val($.trim($(this).val()));
return true;
}
},
regex: "^[a-zA-Z_]*$",
minlength: 3,
maxlength: 100
},
txtEmail: {
required: true
}
},
messages: {
txtFullName: {
required: "You must fill in this field.",
regex: "You may only enter characters here."
}
}
});