Использование события jQuery Validate invalidHandler - PullRequest
0 голосов
/ 06 января 2011

Мне нужно добавить класс в div, который оборачивается вокруг элемента select после проверки.

$("#Form").validate({
    invalidHandler: function (form, validator) {
        $("[id$='_DropDownList']").each(function () {
            // How do I figure out if $(this) is valid or invalid?
            // Add the class below if invalid.
            $(this).parent().addClass("error");
        });
    }
});

Ответы [ 3 ]

6 голосов
/ 06 января 2011

Вы можете использовать метод .valid(), например:

$("#Form").validate({
    invalidHandler: function (form, validator) {
        $("[id$='_DropDownList']").each(function () {
            if(!$(this).valid())
              $(this).parent().addClass("error");
        });
    }
});

Однако параметры highlight и unhightlight предназначены специально дляэто:

$("#Form").validate({
  highlight: function(element, errorClass, validClass) {
    $(element).parent().removeClass(validClass).addClass(errorClass);
  },
  unhighlight: function(element, errorClass, validClass) {
    $(element).parent().removeClass(errorClass).addClass(validClass);
  }
});
0 голосов
/ 21 августа 2018

invalidHandler вызывается только тогда, когда форма отправлена ​​и не действительна. Я полагаю, что достаточно добавить ваш код под эту функцию.

0 голосов
/ 06 января 2011

Похоже, этот код верен:

$(this).parent().addClass("error");

Возможно, ваша проблема с кодом, окружающим его ... Попробуйте переместить строку addClass за пределы функции, в которой она находится, чтобы увидеть, работает ли она там.

...