ダウンロード Sample.zip (50.7 KB)
フォーム入力を制限するText input field filter
次は、入力制限をかけられるText input field filterプラグインを使ってみましょう。プラグインはこちらからダウンロードします。
ここでは、リスト1で取り上げたInput Hint Overlayプラグインに、Text input field filterプラグインを追加してみます。Text input field filterの使い方をリスト2に、オプションを表1に示します。
$('#input_id').filter_input({regex:'reg', live:true});
#input_idでは、input要素のidを指定します。
| オプション | 説明 |
| reg | 入力を許可する文字列を正規表現で表す |
| live | live()関数の有効/無効を指定する(true/false)。デフォルトはfalse。falseを指定した場合はbind()関数が使われる |
live()関数とbind()関数は、イベントに対してハンドラを登録できる関数です。両者の違いは、例えば、li要素に対してclickイベントを登録した場合、bind()関数であれば、クリックした時点に対してイベントが登録されるだけですが、live()関数は、その後、動的に追加されたli要素に対しても、クリックに対してハンドラが実行されます。
では、氏名欄には大文字のアルファベットのみ、電話番号欄には数字のみ、血液型欄には「a、b、o、ab」のみの入力を受け付けるようにしてみましょう。Text input field filterプラグインの使用例を示します(リスト3)。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>input text field filteringサンプル</title>
//1.jQueryの読み込み
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery.inputHintOverlay.js"></script>
//2.Text input field filterプラグインの読み込み
<script type="text/javascript" src="js/jquery.filter_input.js"></script>
<script type="text/javascript">
<!--
$(function () {
$('form#myForm').inputHintOverlay(5, 3);
//3.Text input field filterプラグインの実行
$('#name').filter_input({ regex: '[A-Z]', live: true });
$('#phone').filter_input({ regex: '[0-9]', live: true });
$('#bloodtype').filter_input({ regex: '[a,b,o,ab]', live: true });
});
//-->
</script>
<style type="text/css">
.inputHintOverlay { color: #999; font-size: 14px; }
</style>
</head>
<body>
<h1 id="title">input text field filteringサンプル</h1>
<form id="myForm" action="">
<fieldset>
氏名:<input type="text" id="name" title="大文字のアルファベットで入力してください。" size="50" />
電話番号:<input type="text" id="phone" title="数字で入力してください。" size="50" />
血液型:<input type="text" id="bloodtype" title="a,b,o,abのいずれかで入力してください。" size="50" />
<input type="button" id="submit" value="登録" />
</fieldset>
</form>
</body>
</html>
1、2でjQueryとプラグインを読み込みます。そして、3でプラグインを実行しています。リスト2の実行結果を図2に示します。

この状態で指定したフォーマット以外で各項目に入力しようとしても、テキストボックスの中には何も入力できません(図3)。

例えば、大文字のみを入力させたい場合、Text input field filterを利用することで、わりと簡単に実装できます。Text input field filterについての詳細はこちらを参照ください。
この記事は参考になりましたか?
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト asa(asa)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
