1

入力フィールドまたは選択フィールドで検証エラーが発生すると、プラグインはそれにエラー クラスを追加するので、css で次のようなものを作成できます。

.error { border: 2px solid red; }

ただし、一部のブラウザーではこれらのタイプの要素のスタイル設定が許可されていないため、これはチェックボックスとラジオでは機能しません。したがって、これらの 2 種類の要素については、blockそれらを含むクラスの div に代わりにエラー クラスを指定したいと思います。したがって、エラーの場合は次のようになります。

<div class="block error">
    <input type="checkbox" name="something" class="error" /> Something
</div>

これを実現するためにプラグインをどのように拡張できますか?

擬似コード:

$.validator.addClassRules('checkboxOrRadioError', {
   onError: function() {
       $(this).parents('.block').addClass('error');
   }
});
4

1 に答える 1

2

コールバックを使用してerrorPlacement、エラーのデフォルトの配置を上書きしたり、highlightコールバックを と組み合わせて使用​​したりできますunhighlight。これで何が起こるかを制御できますが、すべての条件を記述する必要があります

例:

$('form').validate(function() {

    highlight: function(element, errorClass) {
        var $el = $(element);
        if ($el.is(':radio') || $el.is(':checkbox')) {
            $el.closest('.block').addClass(errorClass)

        } else { 
                /* add code for default*/
        }

    },

    unhighlight: function(element, errorClass) { 
                /* code to reverse the above*/
    }
})​
于 2012-10-21T15:47:29.837 に答える