方案一:如果 项目里不是只是个别页面 有多个name 验证,
那么利用 prototype 来写,把这段代码加在你所要使用多个name的页面 的js初始化里 即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
if
($.validator) {
$.validator.prototype.elements =
function
() {
var
validator =
this
,
rulesCache = {};
// select all valid inputs inside the form (no submit or reset buttons)
return
$(
this
.currentForm)
.find(
"input, select, textarea"
)
.not(
":submit, :reset, :image, [disabled]"
)
.not(
this
.settings.ignore)
.filter(
function
() {
if
(!
this
.name && validator.settings.debug && window.console) {
console.error(
"%o has no name assigned"
,
this
);
}
//注释这行代码
// select only the first element for each name, and only those with rules specified
//if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) {
// return false;
//}
rulesCache[
this
.name] =
true
;
return
true
;
});
}
}
|
方案二:修改源文件 这样做 就是所有的页面都可以验证多个name
利用 ctrl+F 查找 this.name in rulesCache 找到 源码 (不是压缩过的 min.js)。把这行if判断注释即可。
elements: function() { var validator = this, rulesCache = {}; // select all valid inputs inside the form (no submit or reset buttons) return $(this.currentForm) .find("input, select, textarea") .not(":submit, :reset, :image, [disabled]") .not( this.settings.ignore ) .filter(function() { if ( !this.name && validator.settings.debug && window.console ) { console.error( "%o has no name assigned", this); } // select only the first element for each name, and only those with rules specified //if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) { // return false; //} rulesCache[this.name] = true; return true; }); },
如果是压缩js min.js :
查找 这段 (c[this.name]=!0,!0)}) 改成
return !this.name && b.settings.debug && window.console && console.error("%o has no name assigned", this), //this.name in c || !b.objectLength(a(this).rules()) ? !1 : (c[this.name] = !0, !0) 隐藏这段 然后添加下面这句代码 即可 c[this.name] = !0, !0
以上是转发网友的文章。试了下第一个可以用的,第二个还没试过。原文章出处:http://www.cnblogs.com/danywdd/p/5667903.html