在asp.net中验证html输入日期的范围

时间:2018-01-07 05:54:14

标签: html asp.net rangevalidator

我在asp.net中使用HTML输入类型日期。使用范围验证器验证日期和正则表达式仅输入数字。如果正确输入日期范围验证器和reqular表达式都显示错误。

抱歉英文不好。

<div class="form-group">
  <h5>Date of Birth:</h5>
  <div class="controls ">
    <div class="input-group">
      <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
      <input type="date" name="bday" class="form-control" id="dateofbirth" runat="server">
    </div>
    <span style="color:red;"><asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Please Enter Date Of Birth" ControlToValidate="dateofbirth" SetFocusOnError="True"></asp:RequiredFieldValidator></span>
    <span style="color:red;"><asp:RegularExpressionValidator ControlToValidate="dateofbirth" ID="RegularExpressionValidator7" runat="server" ErrorMessage="Please Enter Numbers Only" ValidationExpression="0*[0-9]\d*"></asp:RegularExpressionValidator></span>
    <span style="color:red;"><asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Your are not eligible " ControlToValidate="dateofbirth"  MaximumValue="DateTime.Now.Date.Value.ToString(yyyy-MM-dd)" MinimumValue="DateTime.Now.AddYears(-18).ToString.Value(yyyy-MM-dd)"></asp:RangeValidator></span>
  </div>
</div>

error in form

1 个答案:

答案 0 :(得分:0)

有一件事就是你的C#代码如下:

DateTime.Now.Date.Value.ToString("yyyy-MM-dd")

应该用代码字符封装

<% = DateTime.Now.Date.Value.ToString("yyyy-MM-dd") %>

对于ValidationExpression =看起来您需要弄清楚如何对## / ## / ####格式进行正则表达式测试,这就是您想要的日期格式