SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

jQuery UI/プラグインの活用

フォーム入力に役立つjQueryプラグイン

jQuery UI/プラグインの活用(3)

ダウンロード 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に示します。

リスト2 Text input field filterの使い方
$('#input_id').filter_input({regex:'reg', live:true}); 

 #input_idでは、input要素のidを指定します。

表1 Text input field filterのオプション
オプション 説明
reg 入力を許可する文字列を正規表現で表す
live live()関数の有効/無効を指定する(true/false)。デフォルトはfalse。falseを指定した場合はbind()関数が使われる

 live()関数とbind()関数は、イベントに対してハンドラを登録できる関数です。両者の違いは、例えば、li要素に対してclickイベントを登録した場合、bind()関数であれば、クリックした時点に対してイベントが登録されるだけですが、live()関数は、その後、動的に追加されたli要素に対しても、クリックに対してハンドラが実行されます。

 では、氏名欄には大文字のアルファベットのみ、電話番号欄には数字のみ、血液型欄には「a、b、o、ab」のみの入力を受け付けるようにしてみましょう。Text input field filterプラグインの使用例を示します(リスト3)。

リスト3 Text input field filterプラグインの使用例(jQueryPlugin_input text field filtering.html)
<!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>

 12でjQueryとプラグインを読み込みます。そして、3でプラグインを実行しています。リスト2の実行結果を図2に示します。

図2 Text input field filterの実行結果
図2 Text input field filterの実行結果

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

図3 Text input field filterの実行結果(入力制限時)
図3 Text input field filterの実行結果(入力制限時)

 例えば、大文字のみを入力させたい場合、Text input field filterを利用することで、わりと簡単に実装できます。Text input field filterについての詳細はこちらを参照ください。

次のページ
入力項目を検証するValidation

この記事は参考になりましたか?

jQuery UI/プラグインの活用連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5514 2010/11/25 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー