日付以外が入力されたらメッセージを表示する(Adobe Spry)

説明

リアルタイムに入力された内容が指定された形式の日付かどうかを調べるにはAdobe Spryフレームワークを利用すると簡単です。テキストフィールドのチェックを行うSpryValidationTextField.jsファイルと関連するスタイルシートファイル (SpryValidationTextField.css) を読み込みます。チェックしたいテキストフィールドを<span>タグで囲みID名を指定しておきます。さらに入力時に表示するメッセージを<span>タグで囲みスタイルシートのクラス名をtextfieldRequiredMsgにします。入力内容が不正だった場合のメッセージも同様に<span>タグを使いスタイルシートクラス名をtextfieldInvalidFormatMsgにします。
HTML文書の設定が終わったらスクリプトでチェックする対象となるテキストフィールドをSpry.Widget.ValidationTextField()で指定します。パラメータにはチェックする領域を示すID名、チェックする種類、いつチェックするかなどのオプションを指定します。日付かどうかをチェックする場合には2番目のパラメータにdateの文字を指定します。次にどのような日付形式かどうかを3番目のformatオプションで指定します。年数はyy、日付はmm、日にちはddで示されます。mm/dd/yyであれば10/19/07(2007年10月19日)、yyyy/mm/ddであれば2007/10/19の形式を受け付けるようになります。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" href="SpryValidationTextField.css" type="text/css" media="all">
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script src="SpryValidationTextField.js" type="text/javascript"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>日付以外が入力されたらメッセージを表示する</h1>
<form action="./check.cgi" method="get" id="mainForm" name="mainForm">
<span id="checkData1">
<input type="text" name="text1" id="text1">
<span class="textfieldRequiredMsg">yyyy/mm/dd形式で入れてください</span>
<span class="textfieldInvalidFormatMsg">yyyy/mm/dd形式以外は受け付けません</span>
</span>
<input type="submit" value="送信">
</form>
</body>
</html>

window.onload = function() {
new Spry.Widget.ValidationTextField("checkData1", "date", {format:"yyyy/mm/dd", validateOn:["blur","change"]});
}