验证ASP.NET中的年龄限制

时间:2013-04-02 11:53:07

标签: asp.net validation

我是ASP.NET的新手,我想设置RangeValidator来验证18岁以上的出生日期。我已经设置了它,但是它没有用。

我该如何解决?

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtDOB"
                    ErrorMessage="less than 18 " MaximumValue="01/01/1995" MinimumValue="01/01/1888"
                    SetFocusOnError="True" Type="Date" Style="color: #FF0000;"></asp:RangeValidator> 

1 个答案:

答案 0 :(得分:3)

我建议您使用带有客户端javascript功能的asp:CustomValidator

Custom Validator

你可以做这样的事情(注意,这是未经测试,只是在我的头顶):

<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;
   }
}

注意

  1. javascript使用0表示1月,因此月份为-1。
  2. 如果禁用了javascript,您应该向自定义验证程序添加ServerValidation函数。