【发布时间】:2020-07-14 23:38:04
【问题描述】:
我的网页上有一个出生日期文本框。我不希望任何人输入小于 16 岁的年龄。如果有人输入小于 16 岁的年龄,我想显示错误消息“不允许小于 16 岁”。我想在服务器端而不是客户端脚本上编写此验证。下面是出生日期字段。
<input onblur="selfservice.dateBlurCallback(event)" data-options="{"mode":"datebox","overrideDateFormat":"%-m/%-d/%Y","lockInput":false,"usePlaceholder":"mm/dd/yyyy","useModal":false,"overrideSetDateButtonLabel":"Set Date","showInitialValue":false,"beforeOpenCallback":"parseDateCallback"}" name="field_RecordingDateID_DOT_StartDate" id="txtDOB" placeholder="mm/dd/yyyy" type="text" data-role="datebox" value="" runat="server" ></input>
下面是我的自定义验证器:
<asp:CustomValidator Display="None" ID="CustomValidator1" runat="server" OnServerValidate="ageValidator" ControlToValidate="txtDOB" ErrorMessage="" />
以下是我的服务器端代码:
protected void ageValidator(object source, ServerValidateEventArgs args)
{
DateTime dtStart = DateTime.Parse(txtDOB.Value.ToString());
TimeSpan sp = DateTime.Now - dtStart;
if (sp.Days < 16 * 365)
{
args.IsValid = false;
CustomValidator1.ErrorMessage = "You have to be at least 16 to order the Certificate";
}
else
args.IsValid = true;
}
如果出生日期小于 16 岁,我不会看到任何错误消息。此外,一旦执行此方法,应用程序就会继续。
任何帮助将不胜感激。
【问题讨论】:
-
我确实格式化了我的代码。
-
您遇到了什么问题?
-
我修改了我的问题
-
您是否尝试调试以查看服务器端代码是否正常运行?
标签: c# asp.net validation