errorClass в jquery проверить плагин? - PullRequest
16 голосов
/ 13 февраля 2011

Я использую плагин jquery validate в своем веб-приложении для проверки бланков и других простых проверок.

Я использую приведенный ниже код для настройки плагина jquery validate для моей формы, в нем есть опция erroClass, где я определил имя класса CSS authError, которое я хочу применить к сообщениям об ошибках, но его применение тот же класс для блока INPUT, я не хочу применять его в блоке INPUT, просто хочу для сообщения об ошибке. Пожалуйста, проверьте и помогите. Спасибо!

$("#frmSignin").validate({
    debug: false,
    errorClass: "authError",
    errorElement: "span",
    rules: {
        username: {
            required: true,
            minlength: 10
        },
        password: {
            required: true  
        }
    },
    messages: {
        username: {
            required: "Please enter your username"
        },
        password: {
            required: "Please enter your password"
        }
    }
});

Ответы [ 6 ]

26 голосов
/ 14 февраля 2011

Спасибо за трюки, ребята, но вместо этого я нашел лучший способ, используя только код jQuery. В плагине validate есть событие highlight, которое вызывается при возникновении ошибки, чтобы выделить поля ошибок. Я просто удалил элемент формы класса при вызове этого события.

$("#frmSignin").validate({
    debug: false,
    errorClass: "authError",
    errorElement: "span",
    rules: {
        username: {
            required: true,
            minlength: 10
        },
        password: {
            required: true  
        }
    },
    messages: {
        username: {
            required: "Please enter your username"
        },
        password: {
            required: "Please enter your password"
        }
    },
    highlight: function(element, errorClass) {
        $(element).removeClass(errorClass);
    }
});
5 голосов
/ 05 мая 2011

На самом деле вы должны просто определять разные классы для input и span ( span , поскольку errorElement установлен в span, в противном случае это будет label ), а не удаляя примененный класс

, например

span.authError {color: red;}

input.authError {border: 1px, пунктирный красный;}

, а не только .authError {} , который будет применен как к входу, так и к диапазону

4 голосов
/ 19 ноября 2014
    $("#borrowerForm").validate({
        errorElement: 'span',
        errorElementClass: 'input-validation-error',
        errorClass: 'field-validation-error',
        errorPlacement: function(error, element) {},
        highlight: function(element, errorClass, validClass) {
            $(element).addClass(this.settings.errorElementClass).removeClass(errorClass);
        },
        unhighlight: function(element, errorClass, validClass) {
            $(element).removeClass(this.settings.errorElementClass).removeClass(errorClass);
        },
        onkeyup: false,
        errorPlacement: function (error, element) { error.insertAfter(element); }
    });
2 голосов
/ 13 февраля 2011

В плагине проверки jQuery errorClass применяется к элементу сообщения об ошибке (обычно <label>, но <span> в вашем случае) и к самому проверенному элементу.Поскольку вы хотите стилизовать только элемент сообщения об ошибке, вы должны написать:

span.authError {
    // Your error element style.
}
0 голосов
/ 22 марта 2015

Проверьте это:

jQuery.validator.messages.required = "";
$('#frm-contact').validate({
    invalidHandler: function (e, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            var message = errors == 1
                    ? 'You missed 1 field. It has been highlighted below'
                    : 'You missed ' + errors + ' fields.  They have been highlighted below';
            $("div.error span").html(message);
            $("div.error").show();
        } else {
            $("div.error").hide();
        }
    },
    onkeyup: false,
    submitHandler: function () {
        $("div.error").hide();
        alert("submit! use link below to go to the other step");
    },
    highlight: function (element, required) {
        $(element).fadeOut(function () {
            $(element).fadeIn();
            $(element).css('border', '2px solid #FDADAF');
        });
    },
    unhighlight: function (element, errorClass, validClass) {
        $(element).css('border', '1px solid #CCC');
    }
});
0 голосов
/ 13 февраля 2011

Если вы хотите дать css для сообщения об ошибке.Тогда вместо использования errorClass определите css rule

label.error 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...