我在 asp.net 中有以下代码片段,其中我正在验证一个文本框。我添加了两个验证控件,其中第一个验证日期的格式,第二个验证未来的数据。
现在的问题是两个验证同时触发。我想首先检查日期是否有效,然后我想触发 rangevalidator。
<asp:TextBox Enabled="True" runat="server" size="8" MaxLength="10" meta:resourcekey="txtTravelerDOBResource2">mm/dd/yyyy</asp:TextBox>
<asp:RangeValidator ID="rangeValidator" ControlToValidate="txtTravelerDOB" MaximumValue="09/25/2013" MinimumValue="1/1/2012" Type="Date" ErrorMessage="Future Date Not allowed" runat="server"></asp:RangeValidator>
<asp:RegularExpressionValidator Enabled="True" ID="rgxDOB" runat="server" ControlToValidate="txtTravelerDOB"
Display="Dynamic" ErrorMessage="Date is not valid"
ValidationExpression="^(((0?[13578]|1[02])[\/](0?[1-9]|[12]\d|3[01])[\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[13456789]|1[012])[\/](0?[1-9]|[12]\d|30)[\/]((1[6-9]|[2-9]\d)?\d{2}))|(0?2[\/](0?[1-9]|1\d|2[0-8])[\/]((1[6-9]|[2-9]\d)?\d{2}))|(0?2[\/]29[\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))$"
></asp:RegularExpressionValidator>
我尝试使用 javascript 启用禁用验证控件,如下所示。
function isGoodDate(){
var value=$("#ctl09_ctl00_ctl00_ctl00_rptTravelers_ctl01_txtTravelerDOB").val();
var v=$("#ctl09_ctl00_ctl00_ctl00_rptTravelers_ctl02_txtTravelerDOB").val();
var reGoodDate = /^((0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2})*$/;
console.log(value);
if(reGoodDate.test(value))
{
$.each(Page_Validators, function (index, validator){
if (validator.validationGroup == "x"){
ValidatorEnable(validator, true);
}
});
}
else
{
ValidatorEnable(validator, false);
}
if(reGoodDate.test(v))
{
$.each(Page_Validators, function (index, validator){
if (validator.validationGroup == "y"){
ValidatorEnable(validator, true);
}
});
}
else
{
ValidatorEnable(validator, false);
}
}