我建议您使用asp:CustomValidator
带有客户端 javascript 函数的 an 。
自定义验证器
你可以做这样的事情(注意,这是未经测试的,就在我的脑海中):
<asp:CustomValidator ID="CustomValidator1" runat="server"
EnableClientScript="true"
ErrorMessage="less than 18"
ClientValidationFunction="checkDate"
ControlToValidate="txtDOB">
</asp:CustomValidator>
假设日期以这种格式写入“dd/MM/yyyy”
function checkDate() {
var enteredDate=document.getElementById('<%=txtDOB.ClientID%>').value;
var dateValues=enteredDate.split("/");
var dateToCheck = new Date(dateValues[2], dateValues[1]-1, dateValues[0]);
var today = new Date();
var dateValid = new Date(today.getFullYear()-18, today.getMonth()-1, today.getDate());
if (dateToCheck < dateValid) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
笔记
- javascript 在 1 月使用 0,因此在当月使用 -1。
- 您应该在自定义验证器中添加一个 ServerValidation 函数,以防 javascript 被禁用。