JQuery Validation - получить список ошибочных полей в invalidHandler

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

Эта функция передается как один из параметров метода jQuery.validate()...

invalidHandler: function (form) {
    var validator = $("#AddEditFinancialInstitutionForm").validate();
    validator.showErrors();
    console.log(validator);
}

Я пытаюсь найти эту информацию где-то в результирующем объекте проверки, но я не могу найти ее. Есть ли другой способ доступа к этой информации?

Спасибо

Ответ 1

В invalidHandler вам передаются два аргумента: объект jQuery.Event и validator. Вам не нужно вызывать проверку в своем недопустимомHandler для получения объекта проверки. Кроме того, объект validator имеет свойства, называемые errorList и errorMap, которые содержат информацию, которую вы ищете.

invalidHandler: function(e,validator) {
    //validator.errorList contains an array of objects, where each object has properties "element" and "message".  element is the actual HTML Input.
    for (var i=0;i<validator.errorList.length;i++){
        console.log(validator.errorList[i]);
    }

    //validator.errorMap is an object mapping input names -> error messages
    for (var i in validator.errorMap) {
      console.log(i, ":", validator.errorMap[i]);
    }
}

Ответ 2

Если вы используете класс ошибок по умолчанию и обнаруживаете только недопустимые элементы, используйте

 $(this).find("input.error") // inside invalidHandler