C# 验证出生日期的文本框

C# 验证出生日期的文本框,c#,javascript,asp.net,regex,validation,C#,Javascript,Asp.net,Regex,Validation,下面的代码用于验证出生日期的文本框。条件是 文本框不能为空 文本框日期的格式应为dd/mm/yyyy 文本框日期不应大于当前日期。ie;无未来日期(显示错误,如-U r尚未出生,伙计) (年月日,例如:2011年12月12日) 但问题是,文本框位于ajax包装器中,因此只有客户端验证才能工作。 任何人在这里,请帮助我与任何提示,建议或与工作代码!!。我将非常满意,因为我从早上开始就在处理这个问题您的CustomValidator上可以有一个ClientValidationFunction

下面的代码用于验证出生日期的文本框。条件是

  • 文本框不能为空
  • 文本框日期的格式应为dd/mm/yyyy
  • 文本框日期不应大于当前日期。ie;无未来日期(显示错误,如-U r尚未出生,伙计)

  • 
    (年月日,例如:2011年12月12日)
    

    但问题是,文本框位于ajax包装器中,因此只有客户端验证才能工作。
    任何人在这里,请帮助我与任何提示,建议或与工作代码!!。我将非常满意,因为我从早上开始就在处理这个问题

    您的CustomValidator上可以有一个ClientValidationFunction属性

    <asp:CustomValidator runat="server" ID="valDateRange" ControlToValidate="txtDateOfBirth" ErrorMessage="enter valid date" ClientValidationFunction="validateDate" />
    
    
    
    然后创建一个Javascript函数:

    function validateDate(sender, e) {
    
        // Split out the constituent parts (dd/mm/yyyy)    
        var dayfield = e.Value.split("/")[0];
        var monthfield = e.Value.split("/")[1];
        var yearfield = e.Value.split("/")[2];
    
        // Create a new date object based on the separate parts
        var dateValue = new Date(yearfield, monthfield - 1, dayfield)
    
        // Check that the date object's parts match the split out parts from the original string
        if ((dateValue.getMonth() + 1 != monthfield) || (dateValue.getDate() != dayfield) || (dateValue.getFullYear() != yearfield)) {
            e.IsValid = false;
        }
    
        // Check for future dates
        if (e.IsValid) {
            e.IsValid = dateValue <= new Date()
        }
    }
    
    函数validateDate(发送方,e){
    //拆分组成部分(日/月/年)
    var dayfield=e.Value.split(“/”[0];
    var monthfield=e.Value.split(“/”[1];
    var yearfield=e.Value.split(“/”[2];
    //基于单独的部分创建新的日期对象
    var dateValue=新日期(yearfield,monthfield-1,dayfield)
    //检查日期对象的部分是否与原始字符串中的拆分部分匹配
    如果((dateValue.getMonth()+1!=monthfield)| |(dateValue.getDate()!=dayfield)| |(dateValue.getFullYear()!=yearfield)){
    e、 IsValid=false;
    }
    //查看未来的日期
    如果(e.IsValid){
    
    e、 IsValid=dateValue您可以在CustomValidator上拥有ClientValidationFunction属性

    <asp:CustomValidator runat="server" ID="valDateRange" ControlToValidate="txtDateOfBirth" ErrorMessage="enter valid date" ClientValidationFunction="validateDate" />
    
    
    
    然后创建一个Javascript函数:

    function validateDate(sender, e) {
    
        // Split out the constituent parts (dd/mm/yyyy)    
        var dayfield = e.Value.split("/")[0];
        var monthfield = e.Value.split("/")[1];
        var yearfield = e.Value.split("/")[2];
    
        // Create a new date object based on the separate parts
        var dateValue = new Date(yearfield, monthfield - 1, dayfield)
    
        // Check that the date object's parts match the split out parts from the original string
        if ((dateValue.getMonth() + 1 != monthfield) || (dateValue.getDate() != dayfield) || (dateValue.getFullYear() != yearfield)) {
            e.IsValid = false;
        }
    
        // Check for future dates
        if (e.IsValid) {
            e.IsValid = dateValue <= new Date()
        }
    }
    
    函数validateDate(发送方,e){
    //拆分组成部分(日/月/年)
    var dayfield=e.Value.split(“/”[0];
    var monthfield=e.Value.split(“/”[1];
    var yearfield=e.Value.split(“/”[2];
    //基于单独的部分创建新的日期对象
    var dateValue=新日期(yearfield,monthfield-1,dayfield)
    //检查日期对象的部分是否与原始字符串中的拆分部分匹配
    如果((dateValue.getMonth()+1!=monthfield)| |(dateValue.getDate()!=dayfield)| |(dateValue.getFullYear()!=yearfield)){
    e、 IsValid=false;
    }
    //查看未来的日期
    如果(e.IsValid){
    
    e、 IsValid=dateValue无需使用valodators,使用requiredfieldvalidator检查是否为空,并在获取焦点时使用jquery日期选择器使字段具有日期日历


    这是一个非常简单的示例,如果您需要任何帮助,请告诉我:

    无需使用valodators,使用requiredfieldvalidator检查是否为空,并使用jquery日期选择器在获得焦点时使字段具有日期日历


    这是一个非常简单的示例,如果您需要任何帮助,请告诉我:

    我同意varangian_12的回答,但请确保在您的用户禁用Javascript的情况下也执行某种服务器端验证,或者禁用它以绕过验证

    您可以执行一个简单的
    DateTime.TryParse([string value])
    ,然后检查以确保日期发生在过去


    您只需确保处理边缘案例场景

    我同意varangian_12的回答,但也要确保对禁用Javascript的非案例进行某种服务器端验证,或者禁用它以绕过验证

    您可以执行一个简单的
    DateTime.TryParse([string value])
    ,然后检查以确保日期发生在过去


    你只需要确保处理边缘案例场景,你应该试试这个。我会运行得很好。你也可以使用“jquery.validate.js”使文本框不能为空。此外,在css中,你还必须创建一个类错误

    红色的有红色的

    type=“text/css”media=“all”/

    type=“text/javascript”>

    $(函数(){

    var minDate=新日期(“1990年1月1日”)

    var todaysDate=新日期()

    var maxDate=新日期(todaysDate.getFullYear()

    todaysDate.getMonth()

    getDate()-1)

    var currentsYear=todaysDate.getFullYear()

    变量范围='1900:'+currentsYear

    $('#txtDOB')。日期选择器({

    minDate:minDate

    maxDate:maxDate

    变化月:对

    变化年:是的

    年份范围:范围

    })

    })


    你应该试试这个。我会运行得很好。你也可以使用“jquery.validate.js”使文本框不能为空。此外,在css中,你还必须创建一个类错误

    红色的有红色的

    type=“text/css”media=“all”/

    type=“text/javascript”>

    $(函数(){

    var minDate=新日期(“1990年1月1日”)

    var todaysDate=新日期()

    var maxDate=新日期(todaysDate.getFullYear()

    todaysDate.getMonth()

    getDate()-1)

    var currentsYear=todaysDate.getFullYear()

    变量范围='1900:'+currentsYear

    $('#txtDOB')。日期选择器({

    minDate:minDate

    maxDate:maxDate

    变化月:对

    变化年:是的

    年份范围:范围

    })

    })


    use jquery datepicker插件的可能副本。可根据您的需要进行自定义。另请参阅可能的副本
       <p>   type="text/javascript"></script></p>
     <p> <script type="text/javascript"></p>
    <p>    $(function () {</p>
      <p>        var minDate = new Date('1/1/1990');</p>
         <p>    var todaysDate = new Date();</p>
         <p>    var maxDate = new Date(todaysDate.getFullYear(),</p>
            <p>                    todaysDate.getMonth(),</p>
                 <p>               todaysDate.getDate() - 1);</p>
           <p>  var currentsYear = todaysDate.getFullYear();</p>
    
            <p> var range = '1900:' + currentsYear</p>
        <p>      $('#txtDOB').datepicker({</p>
         <p>         minDate: minDate,</p>
           <p>       maxDate: maxDate,</p>
           <p>       changeMonth: true,</p>
           <p>       changeYear: true,</p>
           <p>       yearRange: range</p>
          <p>    });</p>
      <p>    });  </p>