2012-09-26 72 views
0

我的fromdatepicker1和todatepicker2驗證C#中的日期範圍。我想驗證兩者的日期範圍。它始終是從日期< todate。和我的日期格式是dd/mm/yy,我應該如何在Jquery中編寫它?我如何使用Jquery

這裏是日期的文本框我

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

我的繼承人TODATE文本框

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

可能重複的http://stackoverflow.com/questions/3840953/net-date-validation-with-jquery –

+0

是的,但我不明白的datepickers的概念,因爲我的格式是dd/mm/yyyy – Therence

+0

你能幫助我嗎,我不知道該怎麼做:( – Therence

回答

0

使用CustomeValidator控制和ClientValidationFunction屬性設置爲一個javascript/jquery函數。 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> 

您可以瞭解更多有關的CustomValidator在這個環節 http://www.4guysfromrolla.com/articles/073102-1.aspx

更新

這裏是完整的代碼應該是什麼樣子

<%@ 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> 
+0

我應該如何寫入我的asp文本框? – Therence

+0

@Therence 的 這將驗證文本框,但要選擇日期可以使用** JqueryUI Datpicker **或** Ajax Control Toolkit Datepicker **;他們兩個都將與這個驗證器一起工作。 – th1rdey3

+0

你能發表全部答案嗎? PLSS – Therence