出生日期,加入日期和离开日期的验证

时间:2015-04-29 12:01:19

标签: javascript c# jquery asp.net

我有三个文本框BirthDateJoiningDate& LeavingDate

我要确保的是:

  1. Joining dateLeaving date不得大于Birthdate
  2. Leaving Date不得大于Joining DateBirthDate
  3. 我想在输入错误的条目时抛出错误。

    我使用了DatePicker来获取用户的日期输入。

    这是我正在使用的JS代码: -

    $(function () {
        $("[id$=mainContent_txtdateofbirth], [id$=mainContent_txtdoj], [id$=mainContent_txtdol]").datepicker({
            textboxImageOnly: true,
            textboxImage: 'images/calendar.png',
            changeMonth: true,
            changeYear: true,
            dateFormat: "yy / mm / dd",
            yearRange: "-40:+0",
            maxDate: new Date(),
        });
    });
    

    我正在使用的文本框代码: -

    <asp:TextBox ID="txtdateofbirth" CssClass="form-control" runat="server" ValidationGroup="AddNew"></asp:TextBox>
    <asp:TextBox ID="txtdoj" CssClass="form-control" runat="server" ValidationGroup="AddNew"></asp:TextBox>
    <asp:TextBox ID="txtdol" CssClass="form-control" runat="server" ValidationGroup="AddNew"></asp:TextBox>
    

    我从here获得了解决方案,但它不是像我试图做的按钮点击。

    这是我的相关代码: -

    tr>
        <td style="vertical-align: top;">
            <label class="control-label" for="dob">Date of Birth</label></td>
        <td>
            <div class="control-group">
                <div class="controls">
                    <asp:TextBox ID="txtdateofbirth" CssClass="form-control" autocomplete="off" runat="server" ValidationGroup="AddNew"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="reqdob" runat="server" CssClass="error-class" ControlToValidate="txtdateofbirth" ErrorMessage="Please select the date of birth" ValidationGroup="AddNew"></asp:RequiredFieldValidator>
                </div>
            </div>
        </td>
    </tr>
    <tr>
        <td style="vertical-align: top;">
            <label class="control-label" for="subject">Date of Join</label></td>
        <td>
            <div class="control-group">
                <div class="controls">
                    <asp:TextBox ID="txtdoj" Wrap="true" CssClass="form-control" autocomplete="off" runat="server" ValidationGroup="AddNew"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="reqdoj" CssClass="error-class" runat="server" ControlToValidate="txtdoj" ErrorMessage="Please add the date of joining" ValidationGroup="AddNew"></asp:RequiredFieldValidator>
                </div>
            </div>
        </td>
    </tr>
    
    <tr>
        <td style="vertical-align: top;">
            <label class="control-label" for="subject">Date of Leaving</label></td>
        <td>
            <div class="control-group">
                <div class="controls">
                    <asp:TextBox ID="txtdol" CssClass="form-control" autocomplete="off" runat="server" ValidationGroup="AddNew"></asp:TextBox>
                </div>
            </div>
        </td>
    </tr><asp:Button ID="btnSubmit" runat="server" CssClass="btn btn-prm" Text="Submit" Width="75" CausesValidation="true" ValidationGroup="AddNew" OnClick="btnSubmit_Click" />
    

    请根据上面列出的标准建议我如何验证这些日期。

1 个答案:

答案 0 :(得分:1)

编辑2 根据您发布的评论,似乎将所有部分放在一起可能比我预期的更难,所以这里是您需要做的才能获得你想要的结果:

  1. 在服务器端连接一个事件,点击按钮
  2. 在该函数中,将日期选择器的值分配给3个单独的变量
  3. 将以下示例代码用于C#,将leavedatejoindatebirthdate进行比较,并确定leavedatejoindate是否出现在{{1}之前或之后}}
  4. 继续申请其他任何内容
  5. 编辑:这是另一篇关于如何点击按钮点击的MSDN文章。因此,如果您将所有部分组合在一起,您将获得所需的结果,即通过点击按钮验证日期。

    比较日期,尤其是您想要的日期相对简单。

    要在服务器端执行(在C#中),这是一篇MSDN文章和示例:

    birthdate

    要做客户端(在Javascript中),这里是一个,这是一篇W3Schools文章和示例:

    using System;
    
    public class Example
    {
       public static void Main()
       {
          DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
          DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
          int result = DateTime.Compare(date1, date2);
          string relationship;
    
          if (result < 0)
             relationship = "is earlier than";
          else if (result == 0)
             relationship = "is the same time as";         
          else
             relationship = "is later than";
    
          Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
       }
    }
    // The example displays the following output: 
    //    8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM