簡體   English   中英

2月29日至30日的ASP日歷

[英]ASP Calendar with February 29 and 30

我有一個要求我必須允許用戶輸入2月29日和2月30日為有效日期的要求。 這是出於會計目的,不是規范,只有特定形式才需要。

現在這是一個數字開放字段,用戶手動輸入日期,我們不執行任何日期驗證,因為它們會失敗。

有什么辦法可以將這兩天包括在ASP Calendar控件中,以便用戶像通常在其他日期那樣簡單地選擇它? (我們在Visual Studio 2010中將C#與Webforms一起使用)。

我建議使用正則表達式驗證器

這將在發布之前檢查條目的格式是否正確。

它看起來像這樣

 <asp:TextBox runat="server" ID="txt_date_entry"></asp:TextBox>
 <asp:RegularExpressionValidator ID="rev_date_entry" runat="server" 
      ControlToValidate="txt_date_entry" ErrorMessage="Must be Valid Date" 
      ValidationExpression="**Expression**"  Display="Dynamic">
 </asp:RegularExpressionValidator>

用您要與之比較的格式替換表達式。

下面將檢查日期格式是否正確(即使是leap年日期),只要格式為dd / mm / yyyy或dd.mm.yyyy等。

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

所需格式的Google驗證表達式

JavaScript解析方法示例

   function dateValidation() 
{
   var obj = document.getElementById("<%=txtDate.ClientID%>"); 
   var day = obj.value.split("/")[0];
   var month = obj.value.split("/")[1]; 
   var year = obj.value.split("/")[2];
   if ((day<1 || day >31) || (month<1&&month>12)&&(year.length != 4)) 
   {
      alert("Invalid Format");return false; 
   }

   else

   {
      var dt = new Date(year, month-1, day); 
      var today = new Date();
      if((dt.getDate() != day) || (dt.getMonth() != month-1) ||(dt.getFullYear()!=year) || (dt>today)) 
      {
         alert("Invalid Date");return false; 
      }
   }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM