入力された文字を日付として解釈する方法には、さまざまな手段があります。入力自体をさせずに、リスト形式のコンボボックスを使うということも、もちろん考えられますが、閏年や月ごとに最終日(30日、31日)が違うことまで検査するには、どうしてもスクリプトを使って検査をする必要があります。
この例では、VBScript の関数(DateValue) 一つだけを使って、簡単に日付の検査をしています。
余談ですが、このサンプルを作成する課程で、J(ava)Script には、With 文が用意されているのに、VBScript には用意されていないことに気付き、唖然としました(^^;)
<script language="VBScript">
<!--
'日付の検査
Function CheckDate(strYear,strMonth,strDay)
Dim dteTmp
On Error Resume Next
CheckDate=DateValue (strYear & "/" & strMonth
& "/" & strDay)
End Function
Sub cmdCheck_onClick()
If
CheckDate(Document.form1.txtYear.value,Document.form1.txtMonth.value,Document.form1.txtDay.value)
then
MsgBox "正しい日付が入力されています"
Else
MsgBox "間違った日付が入力されています"
End if
End Sub
-->
</script>