jQuery验证 - 获取invalidHandler中错误字段的列表

时间:2012-07-24 22:23:57

标签: javascript jquery .net validation jquery-validate

我正在页面上使用jQuery验证。在调用invalidHandler期间,我希望能够访问未通过验证的所有表单元素的列表。

此函数作为jQuery.validate()方法的一个选项传递...

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

我试图在生成的验证器对象中的某处找到此信息,但我似乎无法找到它。还有其他方法可以访问这些信息吗?

由于

3 个答案:

答案 0 :(得分:28)

invalidHandler中,您将传递两个参数:jQuery.Eventvalidator对象。您无需在invalidHandler中调用validate来获取validate对象。此外,验证器对象具有名为errorListerrorMap的属性,其中包含您要查找的信息。

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]);
    }
}

答案 1 :(得分:3)

如果您使用默认错误类并且只找到无效元素,请使用

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

答案 2 :(得分:0)

使用它来获取错误字段的整个元素及其属性。

  var formerrorList = $("#FORM_ID_HERE").data("validator").errorList;
        $.each(formerrorList, function (key, value) {
            console.log(formerrorList[key].element.id);
        });