由于Validate没有提供表单提交过后,验证不通过触发方法。这里做一下扩展。
引用场景:每次提交表单元素验证不通过触发方法
打开源代码 找到focusInvalid 方法, 这里是提交表单时验证不通过触发方法,在这里做扩展是就好不 过的。
focusInvalid: function() {
if ( this.settings.focusInvalid ) {
try {
$(this.findLastActive() || this.errorList.length && this.errorList[0].element || [])
.filter(":visible")
.focus()
.trigger("focusin");
/* 扩展方法failedCallback */
var failedCallback=this.settings.failedCallback;
if($.type(failedCallback)===‘function‘){
failedCallback(this.errorList);
}
} catch(e) {
}
}
}
使用
$(‘#editForm‘).validate(
{
rules:..... ,
failedCallback:function(errorList){
// 循环验证失败元素
for(var i=0; i<errorList.length; i++){
var element=errorList[0].element;
if($(element).attr("name") == ‘birthday‘){
........................................
}
}
}
}
);
时间: 2024-12-28 05:17:48