我正在页面上使用jQuery验证。在调用invalidHandler期间,我希望能够访问未通过验证的所有表单元素的列表。
此函数作为jQuery.validate()方法的一个选项传递...
invalidHandler: function (form) {
var validator = $("#AddEditFinancialInstitutionForm").validate();
validator.showErrors();
console.log(validator);
}
我试图在生成的验证器对象中的某处找到此信息,但我似乎无法找到它。还有其他方法可以访问这些信息吗?
由于
答案 0 :(得分:28)
在invalidHandler
中,您将传递两个参数:jQuery.Event
和validator
对象。您无需在invalidHandler中调用validate来获取validate对象。此外,验证器对象具有名为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]);
}
}
答案 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);
});