0

errorClass を要素に具体的に追加する方法を知りたいだけです。選択をスタイル設定するために、bootstrap-select を使用しています。これにより、select 要素が非表示になり、div が作成されます。jQuery validate は、div ではなく、select 要素に errorClass を追加します (意味があります)。

すべての選択に対して、 errorClass が div にある必要があると具体的にどのように言えますか? ハイライトで推測していますが、1つの要素だけでそれを行う方法が見つからないようです。

4

2 に答える 2

3

errorおよびクラスが適用される場所を変更するには、validカスタマイズさhighlightれたunhighlightコールバック関数を指定する必要があります。

これらは、使用中のデフォルトの機能です。必要に応じて編集します。

$(document).ready(function () {

    $('#myform').validate({
        // other rules & options,
        highlight: function (element, errorClass, validClass) {
            if (element.type === "radio") {
                this.findByName(element.name).addClass(errorClass).removeClass(validClass);
            } else {
                $(element).addClass(errorClass).removeClass(validClass);
            }
        },
        unhighlight: function (element, errorClass, validClass) {
            if (element.type === "radio") {
                this.findByName(element.name).removeClass(errorClass).addClass(validClass);
            } else {
                $(element).removeClass(errorClass).addClass(validClass);
            }
        }
    });

});

jsFiddle デモ: http://jsfiddle.net/U3L73/

説明のためだけに、デフォルトの CSS クラスに色を適用しました。

于 2013-10-29T16:33:25.650 に答える
1

showErrors 関数を使用できます。私はこれ (ブートストラップ 3) を使用してhas-errorクラスをform-groupアイテムに設定するので、入力だけでなく form-group 内のすべての要素を強調表示します。

$.validator.setDefaults({
showErrors: function (errorMap, errorList) {
    $.each(this.successList, function (index, value) {
        var $element = $(value);
        $element.closest('.form-group').removeClass('has-error');
    });


    $.each(errorList, function (index, error) {
        var $element = $(error.element);
        $element.closest('.form-group').addClass('has-error');
    });
});
于 2013-10-29T11:58:10.060 に答える