共计 756 个字符,预计需要花费 2 分钟才能阅读完成。
1、设置多 tab 页同时校验:
$("form").validate({ignore: ":hidden", ignore: ""});
由于使用多 tab 页时,会存在隐藏域,jquery validate 默认是不对隐藏域校验的;以上参数便是加入对隐藏域的校验。
2、多 tab 页校验,会存在校验提示定位问题,即如果多个 tab 页同时有不满足校验时,如何实现自动跳转到不满足校验的 tab 页。思路:根据第一个不满足校验条件的元素所在 tab 页,查找其在所有 tab 中的排序位置,然后模拟对应位置的 tab 点击事件,参考代码:
$("form").validate({ | |
ignore: ":hidden", | |
ignore: "", | |
showErrors: function(errorMap,errorList) { | |
// 此方法处理所有不满足校验的元素 | |
var i = 0; | |
for(var key in errorMap){//alert("属性:" + key + ", 值:"+ errorMap\[key\]); | |
if(i == 0){ | |
// 所有 tab 页的内容域 | |
var conents = $("div.tab\_tontent > div"); | |
// 所有 tab 页头 | |
var tabs = $("div.tab\_menu ul li"); | |
var index = conents.index(conents.has("\[name='"+key+"'\]")); | |
tabs.eq(index).click();} | |
i++; | |
} | |
this.defaultShowErrors();} | |
}); |
以上是在实际项目中使用 jquery validate.js 遇到的问题和处理方法,特别提醒下 errorMap 中存的是不满足校验的元素 name 和校验提示信息的键值对,为了更好的定位多 tab 页,各个元素的 name 要求尽量不相同。
正文完