[ad_1]
以下のコードは、任意の日付のエラー メッセージを表示します。現在の日付から 15 歳未満のエラー メッセージを表示する必要があります。助けてください
XML
<asp:Label ID="Label2" runat="server" Text="DOB"></asp:Label> <asp:TextBox ID="DOB" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RFVdob" runat="server" ControlToValidate="DOB" ErrorMessage="Enter Birth Date" Font-Bold="True" ForeColor="Red"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="DOB" ValidationExpression="^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$" ErrorMessage="Enter a Valid Date (mm/dd/yyyy)" Font-Bold="True" ForeColor="Red" ></asp:RegularExpressionValidator> <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="DOB" ErrorMessage="Age above 15 " Type="Date"></asp:RangeValidator>
ページ Lode のコード:
C#
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("hu-HU"); RangeValidator1.MinimumValue = DateTime.Today.AddYears(-15).ToShortDateString(); RangeValidator1.MaximumValue = DateTime.Today.ToShortDateString();
解決策 1
18 歳以上であることを確認するために、以前にも同様の要件がありました。
カスタムバリデーターを使用しました(できれば正規表現を避けようとしています)
XML
<asp:CustomValidator ID="cvDOB" runat="server" ControlToValidate="pmDOB" ClientValidationFunction="VAge" ErrorMessage="Birth Date is under age 18." ForeColor="Red">*</asp:CustomValidator>
18 歳以上であることを確認するための JavaScript は次のとおりです。
C#
function VAge(obj, args) { //validate that a DOB is at least 18 years old. //http://www.codingforums.com/showthread.php?t=171435 var today = new Date(); var today_year = today.getFullYear(); var value = Trim(args.Value); value = value.replace("-", "/").replace(".", "/"); var splitDate = value.split("/"); var dob_year = splitDate[2]; var dob_day = splitDate[1]; var dob_month = splitDate[0]; var dob; dob = new Date(dob_year, dob_month - 1, dob_day); // as months are 0-11 if ((dob_day == dob.getDate()) && (dob_month == (dob.getMonth() + 1)) && (dob_year == dob.getFullYear())) { dob_month = dob_month - 1; // as months are 0-11 var age = today_year - dob_year; var today_month = today.getMonth(); var today_day = today.getDate(); if (dob_month > today_month) { age = age - 1 } // next birthday not yet reached else if (dob_month == today_month && today_day < dob_day) { age = age - 1 } // next birthday not yet reached if (age < 18) { args.IsValid = false; return; } } else { args.IsValid = false; return; } args.IsValid = true; }
[ad_2]
コメント