以前にフォーム入力チェックをjQueryで実装できるプラグイン「validationEngine」の使い方を紹介しました。
この記事の最後で必須項目以外の入力チェック方法を
のちのち別の記事で紹介するので
とか書いたみたいなんですが、ボーっとしているうちになぜか数ヶ月経ってしまいました。
今度こそちゃんと書きます。
入力チェック条件の確認方法・使い方
導入時に読み込んだ『jquery.validationEngine-ja.js』を開くと
"number": {
"regex": /^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
"alertText": "* 数値を半角で入力してください"
},
こんな感じの記述が並んでいます。
"number"は数字のみの入力を受け付けるチェック条件です。
フォームへ入力チェックを追加したい!
例として、"number"で入力チェックしたい場合はhtmlへこのように記述します。
<input type="text" value="" class="validate[custom[number]]">
入力チェック+必須入力にしたい!
"number"で入力チェック+必須入力にしたい場合は、下記のように記述します。
<input type="text" value="" class="validate[required,custom[number]]">
エラーメッセージを変更したい!
『jquery.validationEngine-ja.js』内で"alertText"の部分を書き換える事でエラーメッセージを変更できます。
"number": {
"regex": /^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
"alertText": "* 数値を半角で入力してね ミ☆" //エラーメッセージを変更
},
よく使いそうなチェック形式
元々「validationEngine」に入っているチェック形式で、よく使用しそうなものをピックアップして紹介します。
電話番号の形式で入力されているか
電話番号
<input type="text" value="" class="validate[custom[phone]]">
メールアドレスの形式で入力されているか
メールアドレス
<input type="text" value="" class="validate[custom[email]]">
同じ値が入力されているか
まず、1つ目の入力欄にclass="validate[required]"と任意のIDを指定します。
2つ目の入力欄にはclass="validate[required,equals[●●]"を指定します。
equals[●●]には1つ目で指定したIDを入れます。
下記はメールアドレスとメールアドレス(確認)に同じ値が入っているかチェックするサンプルです。
パスワード(確認)みたいな用途でも使えると思います。
メールアドレス [必須]
<input id="email" type="text" value="" class="validate[required,custom[email]]">
メールアドレス(確認) [必須]
<input type="text" value="" class="validate[required,equals[email]]">
最低文字数を指定
classに"validate[minSize[●(任意の数字)]]"を指定します。
作者の気持ちを50文字以上で入力してください。
<input type="text" value="" class="validate[minSize[50]]">
最大文字数を指定
classに"validate[maxSize[●(任意の数字)]]"を指定します。
作者の気持ちを50文字以内で入力してください。
<input type="text" value="" class="validate[maxSize[50]]">
チェックボックスを●●個以上選択
classに"validate[minCheckbox[●(任意の数字)]]"を指定します。
チェックボックスのnameには同じ値を指定してグループ化します。
下記はname="yakiniku"のチェックボックスグループから2個以上選択させるサンプルです。
好きな焼肉屋のメニュー [2つ以上選択してください]
<label><input type="checkbox" class="validate[minCheckbox[2]]" name="yakiniku" value="カルビ">カルビ</label>
<label><input type="checkbox" class="validate[minCheckbox[2]]" name="yakiniku" value="牛タン">牛タン</label>
<label><input type="checkbox" class="validate[minCheckbox[2]]" name="yakiniku" value="ハラミ">ハラミ</label>
<label><input type="checkbox" class="validate[minCheckbox[2]]" name="yakiniku" value="ホルモン">ホルモン</label>
<label><input type="checkbox" class="validate[minCheckbox[2]]" name="yakiniku" value="冷麺">冷麺</label>
チェックボックスを●●個以下選択
classに"validate[maxCheckbox[●(任意の数字)]]"を指定します。
チェックボックスのnameには同じ値を指定してグループ化します。
下記はname="parakeet"のチェックボックスグループから3個以下まで選択できるサンプルです。
好きなインコの種類 [3つまで選択できます]
<label><input type="checkbox" class="validate[maxCheckbox[3]]" name="parakeet" value="セキセイインコ">セキセイインコ</label>
<label><input type="checkbox" class="validate[maxCheckbox[3]]" name="parakeet" value="オカメインコ">オカメインコ</label>
<label><input type="checkbox" class="validate[maxCheckbox[3]]" name="parakeet" value="コザクラインコ">コザクラインコ</label>
<label><input type="checkbox" class="validate[maxCheckbox[3]]" name="parakeet" value="ボタンインコ">ボタンインコ</label>
<label><input type="checkbox" class="validate[maxCheckbox[3]]" name="parakeet" value="サザナミインコ">サザナミインコ</label>
入力チェックのカスタマイズ例
以下は元々「validationEngine」に入っているものではなく、独自に追加したチェック形式です。
コピーして『jquery.validationEngine-ja.js』に記述すれば入力チェックとして使用できます。
ひらがなで入力されているか
<!-- htmlの記述例 -->
ふりがな
<input type="text" value="" class="validate[custom[hiragana]]">
<!-- validationEngine-ja.js -->
"hiragana": {
"regex": /^[\u3040-\u309F|\s]+$/,
"alertText": "* ひらがなで入力してください。"
},
カタカナで入力されているか
<!-- htmlの記述例 -->
フリガナ
<input type="text" value="" class="validate[custom[katakana]]">
<!-- validationEngine-ja.js -->
"katakana": {
"regex": /^[\u30A0-\u30FF|\s]+$/,
"alertText": "* カタカナで入力してください。"
},
郵便番号の形式で入力されているか
<!-- htmlの記述例 -->
郵便番号
<input type="text" value="" class="validate[custom[zip]]">
<!-- validationEngine-ja.js -->
"zip": {
"regex": /^\d{3}-\d{4}$/,
"alertText": "* 郵便番号が正しくありません"
},
小数点を含む半角数字が入力されているか
<!-- htmlの記述例 -->
円周率を分かるだけ入力してください。
<input type="text" value="" class="validate[custom[float]]">
<!-- validationEngine-ja.js -->
"float": {
"regex": /^(0|-?[1-9]\d*|-?(0|[1-9]\d*)\.\d+)$/,
"alertText": "* 小数点を含む半角数字を入力してください"
},
時間を●●:●●の形式でチェック
<!-- htmlの記述例 -->
時間
<input type="text" value="" class="validate[custom[time]]">
<!-- validationEngine-ja.js -->
"time": {
"regex": /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,
"alertText": "* 時間は半角で HH:MM の形式で入力してください"
},