@ledsun blog

無味の味は佳境に入らざればすなわち知れず

jQuery.validate プラグイン の落とし穴

初期値があると必須バリデーションが上手く動かない

初期値があると、初期値を消したときに「必須です」メッセージが表示されません。

対策

空になったタイミングで$('form').validate().form()を実行してやれば動きます。

$('form')
    .on('keyup', ':text', function () {
        if ($(this).val() === '') {
            $('form').validate.()form();
        }
    });

changeイベントは拾いません。

changeイベントは拾っていません。JavaScriptで値を設定するだけでは「必須です」メッセージは消えません。

対策

値を変えた時にkeyupイベントを送れば動きます。

$(':text')
    .on('change', function (event) {
        validate.element(event.target);
    });