説明
リアルタイムに入力された内容が整数かどうかを調べるにはAdobe Spryフレームワークを利用すると簡単です。テキストフィールドのチェックを行うSpryValidationTextField.jsファイルと関連するスタイルシートファイル (SpryValidationTextField.css) を読み込みます。チェックしたいテキストフィールドを<span>タグで囲みID名を指定しておきます。さらに入力時に表示するメッセージを<span>タグで囲みスタイルシートのクラス名をtextfieldRequiredMsgにします。入力内容が不正だった場合のメッセージも同様に<span>タグを使いスタイルシートクラス名をtextfieldInvalidFormatMsgにします。
HTML文書の設定が終わったらスクリプトでチェックする対象となるテキストフィールドをSpry.Widget.ValidationTextField()で指定します。パラメータにはチェックする領域を示すID名、チェックする種類、いつチェックするかなどのオプションを指定します。整数かどうかをチェックする場合には2番目のパラメータにintegerの文字を指定します。これでリアルタイムに整数かどうかの入力チェックが行われます。
<!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", "integer", {validateOn:["blur","change"]});
}