LoginSignup
67
67

More than 5 years have passed since last update.

jQuery Validation Plugin 簡単な使い方まとめ

Last updated at Posted at 2015-03-23

jQuery Validation Pluginの簡単な使い方まとめです。
http://jqueryvalidation.org/

基本形式

javascript
$("form").validate({
    rules: {
        "menu[]" :{
            required: true
        },
        date :{
            require_from_group: [1, ".date_group"]
        }
    },
    messages: {
        "menu[]":{
            required: "ご希望のメニューを選択してください"
        },
        date :{
            require_from_group: "日時を選択してください。"
        }
    }
});

rulesにはそれぞれのname属性に対するチェック項目を決められます。
チェックボックスなんかで「name="menu[]"」としている場合は
「"menu[]":{}」という感じで囲ってあげてください。
messagesにはそれぞれのチェック項目に対するエラー内容(テキスト)をいれます。

focusした後に何もせずblurした場合もチェックする

javascript-jquery.validate.js
if ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {

↓↓↓↓↓↓

if ( !this.checkable( element ) ) {

デフォルトだと、ルールに「required」が設定されていても、
focusした後に何もせずblurした時にチェックしてくれません。
なので、上のように、「jquery.validate.js 」内のソースを修正すれば、
ちゃんとチェックしてくれるようになります。

エラー表示位置を変える場合

javascript
errorPlacement: function(error, element) {
    element.before( error );
}

デフォルトでは指定したエレメントの後にエラーが入りますが、
「errorPlacement」でエレメントの前にも表示可能です。

チェックボックスのvalidation

javascript
$('input[type="checkbox"]').on('click', function() {
    $('form').validate().element( this );
});

デフォルトでは、チェックボックスに「required」をつけても反応してくれないので、
上記を追加してやると該当エレメントのバリデーションを実行してくれます。

validationおまけ

$('form').validate();
と書いてやると、フォーム全体のバリデーションが行えます。

あとからチェック項目を変更

javascript
$( ".foo" ).rules( "add", {
    required: true,
});

ラジオボタンでAが選択したらA'を必須項目にしたい場合等は、
rules("add",{ 追加チェック項目 });
でチェック項目を増やすことができます。
rules("remove",{ 削除チェック項目 });
でチェック項目を減らすこともできます。

カスタムチェック項目

javascript
$.validator.addMethod("phone", function(value, element) {
    return this.optional(element) || /^[\d,-]+$/.test(value);
}, "数字を入力して下さい");

「$.validator.addMethod」を使って、カスタムチェック項目を作れます。
上記の例は、「数字とハイフンのみの場合OK」という感じです。
電話番号や郵便番号などに使えるかなと思います。

67
67
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
67
67