エンジニアのクオンです。
目次
Jquery Validation Pluginとは
フォーム要素内の入力部品に入力された値が正しいかを、指定したルールに基づいてチェックを行うjQueryライブラリです。
リンクはこちらです。https://jqueryvalidation.org/
主な機能
- Submitイベント時のバリデーションの実行
- 入力内容変更時のバリデーションの実行
- カスタムバリデータの追加・削除
- エラーメッセージの追加・削除
- エラーメッセージを任意の位置(要素)に表示
- バリデーション後、Submitを実行させない
デフォルトでサポートしているバリデーションが以下です
- required
- url
- number, digits
- date
- creditcard
- equalTo
- maxlength, minlength
- range
- max, min
必要であれば、自分のカスタムバリデーションルールも簡単に作れます。
- ドキュメントが十分
- githubリポリトリでスター沢山もらっているし、改善、バグフィックスも続けている githubはこちら
- パーケッジマネージャー(npmなど)でインストール可能、ECMAScript 6,Webpackでも使える
実際に実装する
準備
パーケッジマネージャーでインストール後(またはドウンロード後)、
jquery.validate.js と localization/messages_ja.js ファイルをインポートしてください。
messages_ja.jsファイルに日本語のデフォルトエラーメッセージが含まります。(他の言語のlocalizationファイルもあります)
コード
HTMLコードが以下のようです。
[bash]<div class="signup">
<label><b>メールアドレス</b></label>
<input type="text" name="email">
<label><b>パスワード</b></label>
<input type="password" name="password" id="password">
<label><b>パスワード(確認)</b></label>
<input type="password" name="password-repeat">
</div>
上のHTMLコードに対して、バリデーションコードを以下のように書きます。
(ECMAScript 6で書きます)
説明はコードの中にちゃんと書きます。
#カスタムバリデーションとしても文字と英数字を組み合わせたパスワードかどうかという’passwordStrength’を定義します
$.validator.addMethod(‘passwordStrength’, (value) =>
!/^(.)1*$/.test(value) && !/^d+$/.test(value))
#該当のHTMLクラスでvalidateを実行
$(‘.signup’).validate({
rules: {
‘email’: { #上のメールアドレスinput要素のnameプロパティの値
required: true, #required バリデーションを適用
email: true #email バリデーションを適用
},
‘password’: { #上のパスワードinput要素のnameプロパティの値
required: true, #required バリデーションを適用
minlength: 6, #6ケタ以上かというバリデーションを適用
passwordStrength: true #上の定義したpasswordStrengthバリデーションを適用
},
‘password-repeat’: { #上のパスワード確認input要素のnameプロパティの値
required: true, #required バリデーションを適用
equalTo: "#password" #パスワードinput要素の値と同じかどうかバリデーションを適用
}
},
#Jquery Validation Pluginがデフォルトエラーメッセージを提供しているのですが、自分のより明確なメッセージも定義できる
messages: {
‘email’: {
required: ‘メールアドレスを入力してください’,
email: ‘有効なメールアドレスを入力してください’
},
‘password’: {
required: ‘パスワードを入力してください’,
minlength: ‘パスワードは6文字以上で入力してください’,
passwordStrength: ‘セキュリティ強度の低いパスワードが設定されています。
‘ +
‘英数字を組み合わせたパスワードの使用を推奨しています。’
},
‘password-repeat’: {
required: ‘確認のため再度入力してください’,
equalTo: ‘上記に入力した内容と異なります。ご確認ください’
}
}
})
})
[/bash]
結果
上記のコードで以下のようにバリデーションを実装できます。
素敵ですね。
終わりに
リンクバルでは エンジニアを積極募集中 です。興味のある方のご応募お待ちしております。