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

説明

リアルタイムに入力された内容が金額かどうかを調べるにはAdobe Spryフレームワークを利用すると簡単です。テキストフィールドのチェックを行うSpryValidationTextField.jsファイルと関連するスタイルシートファイル (SpryValidationTextField.css) を読み込みます。チェックしたいテキストフィールドを<span>タグで囲みID名を指定しておきます。さらに入力時に表示するメッセージを<span>タグで囲みスタイルシートのクラス名をtextfieldRequiredMsgにします。入力内容が不正だった場合のメッセージも同様に<span>タグを使いスタイルシートクラス名をtextfieldInvalidFormatMsgにします。
HTML文書の設定が終わったらスクリプトでチェックする対象となるテキストフィールドをSpry.Widget.ValidationTextField()で指定します。パラメータにはチェックする領域を示すID名、チェックする種類、いつチェックするかなどのオプションを指定します。金額かどうかをチェックする場合には2番目のパラメータにcurrencyの文字を指定します。これでリアルタイムに金額かどうかの入力チェックが行われます。
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">何か金額を入れてください</span>
<span class="textfieldInvalidFormatMsg">金額以外は受け付けません</span>
</span>
<input type="submit" value="送信">
</form>
</body>
</html>

window.onload = function() {
new Spry.Widget.ValidationTextField("checkData1", "currency", {validateOn:["blur","change"]});
}