LoginSignup
1
0

More than 5 years have passed since last update.

jquery-validationで空白のみ入力も未入力とみなすカスタムメソッド作成

Last updated at Posted at 2018-09-27

jquery-validationのrequiredでは空白のみ入力が許容される

ある必須入力テキストエリアの入力チェックとして

aaa.js
// コメント必須チェック設定
$('#xxxxForm').validate({
    errorClass: 'input-validation-error',
    rules: {
        xxxComment: {
            required: true
        }
    },
    messages: {
        xxxComment: {
            required: "コメントは必ず入力してください。"
        }
    }
});

のようにrequired指定しただけでは、空白のみの入力はチェックにかからない。

空白のみ入力も未入力とみなすカスタムメソッド作成

空白のみの入力も未入力とみなすようにトリム後の文字数をチェックするjQuery.validatorのカスタムメソッドを定義、
requiredと合わせて指定するようにして対応。

xxxxcommon.js

// jQuery.validatorのrequiredは空白のみを弾かないので対策用カスタムメソッドを定義
jQuery.validator.addMethod(
    "SpaceOnlyNg",
    function (val, elem) {
        return this.optional(elem) || val.trim().length > 0;
    },
    "必須入力です。" // デフォルトメッセージ
);

aaa.js
// コメント必須チェック設定
$('#xxxxForm').validate({
    errorClass: 'input-validation-error',
    rules: {
        xxxComment: {
            required: true,
            SpaceOnlyNg: true
        }
    },
    messages: {
        xxxComment: {
            required: "コメントは必ず入力してください。",
            SpaceOnlyNg: "コメントは必ず入力してください。"
        }
    }
});
  • addMethodは複数個所で使用できるように共通で読み込むjsに記述
  • メッセージは呼び出しもとのmessagesで上書き指定可能
1
0
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
1
0