当我通过调用 $.validator setDefaults 方法为 jQuery Validation 插件设置一些默认值时,errorPlacement 方法运行良好,尽管 invalidHandler 函数被完全忽略?为什么?
请注意,我在此实例中使用 jQuery UI 选项卡,并使用 .valid() 调用验证选项卡的各个字段(在表单中),而不是完整的表单 .validate() 调用。
任何见解都非常感谢。
简化代码如下:
(function( $ ) {
//det up some site wide validator defaults
$.validator.setDefaults({
invalidHandler: function(error, validator) {
console.log("InvalidHandler Test");
},
errorPlacement: function(error, element) {
error.appendTo("#error_validation span#errorSummary");
$("#error_validation").show();
}
});
//small jQuery plugin for error handling in a jQuery UI tab
//by http://bit.ly/bhH1n1
$.fn.validateTab = function () {
var isValid = true;
$(this).find("input, select").each(function () {
if (isValid) {
isValid = $(this).valid();
} else {
$(this).valid();
}
});
return false;
};
$('#tabs').tabs();
$('#addUserBtn').click(function (e) {
e.preventDefault();
$("#addUser").validateTab();
});
});