asp:CustomValidator
クライアント側の JavaScript 関数でを使用することをお勧めします。
カスタムバリデーター
あなたはこのようなことをすることができます(これはテストされていないことに注意してください、私の頭のすぐ上にあります):
<asp:CustomValidator ID="CustomValidator1" runat="server"
EnableClientScript="true"
ErrorMessage="less than 18"
ClientValidationFunction="checkDate"
ControlToValidate="txtDOB">
</asp:CustomValidator>
日付がこの形式「dd/MM/yyyy」で書かれていると仮定します
function checkDate() {
var enteredDate=document.getElementById('<%=txtDOB.ClientID%>').value;
var dateValues=enteredDate.split("/");
var dateToCheck = new Date(dateValues[2], dateValues[1]-1, dateValues[0]);
var today = new Date();
var dateValid = new Date(today.getFullYear()-18, today.getMonth()-1, today.getDate());
if (dateToCheck < dateValid) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
ノート
- javascript は 1 月に 0 を使用するため、月には -1 が使用されます。
- JavaScript が無効になっている場合に備えて、ServerValidation 関数をカスタム バリデータに追加する必要があります。