简体   繁体   English

我如何使用Jquery在C#中验证日期范围

[英]How could I validate the date range in C# using Jquery

my fromdatepicker1 and todatepicker2. 我的fromdatepicker1和todatepicker2。 I want to validate the date range of the two. 我想验证两者的日期范围。 and it will always be fromdate is < todate. 并且它将始终是fromdate为<todate。 and my date format is dd/mm/yy, how should I write it in Jquery? 而我的日期格式是dd / mm / yy,我应该如何在Jquery中编写它?

here is my from date textbox 这是我的起始日期文本框

<asp:RequiredFieldValidator ControlToValidate="txtFromDateBank" 
                        ID="RequiredFieldValidator9" runat="server" Display="Dynamic" 
                        ErrorMessage="asdf" SetFocusOnError="true" InitialValue="" 
                        EnableClientScript="true" Font-Italic="True" Font-Size="Smaller" 
                        ForeColor="Red" ValidationGroup="AddBankDetails">Please specify date</asp:RequiredFieldValidator>
                </div>

heres my todate textbox 这是我迄今为止的文本框

<asp:TextBox ID="txtToDateBank" runat="server"  class="datepicker"></asp:TextBox>

use the CustomeValidator control and set the ClientValidationFunction property to a javascript/jquery function. 使用CustomeValidator控件并将ClientValidationFunction属性设置为javascript / jquery函数。 the js function might look like this - js函数可能看起来像这样-

<script language="JavaScript">
<!--
function CheckDate(sender, args)
{
    var strDate = $(fromdatetextbox).val();
    var dateParts = strDate.split("/"); 
    var fromdate = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);

    strDate = $(todatetextbox).val();
    dateParts = strDate.split("/"); 
    todate = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);

    if(fromdate > todate)
        args.IsValid = false;
    else
        args.IsValid = true;
}
// -->
</script>

you can learn more about customvalidator in this link http://www.4guysfromrolla.com/articles/073102-1.aspx 您可以在此链接中了解有关customvalidator的更多信息http://www.4guysfromrolla.com/articles/073102-1.aspx

Update 更新资料

here is what the full code should look like 完整的代码如下所示

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs"   Inherits="Default2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    <!--
    function CheckDate(sender, args) {
        var strDate = $('#<%= textBoxFromDate.ClientID %>').val();
        var dateParts = strDate.split("/");
        var fromdate = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);

        strDate = $('#<%= textBoxToDate.ClientID %>').val();
        dateParts = strDate.split("/");
        todate = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);

        if (fromdate > todate)
            args.IsValid = false;
        else
            args.IsValid = true;
    }
    // -->
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="textBoxFromDate" runat="server" Text=""></asp:TextBox>
            <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator"
            ControlToValidate="textBoxFromDate" ClientValidationFunction="CheckDate"></asp:CustomValidator>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator"
            ControlToValidate="textBoxFromDate"></asp:RequiredFieldValidator>


            <asp:TextBox ID="textBoxToDate" runat="server" Text=""></asp:TextBox>
            <asp:CustomValidator ID="CustomValidator2" runat="server" ErrorMessage="CustomValidator"
            ControlToValidate="textBoxToDate" ClientValidationFunction="CheckDate"></asp:CustomValidator>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="RequiredFieldValidator"
            ControlToValidate="textBoxToDate"></asp:RequiredFieldValidator>
        </div>
    </form>
</body>
</html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM