用过的人应该知道,validate.js中如果有多个name相同的控件,提交或者调用valid时只会验证这些name相同的第一个控件,为解决这个问题,从网上找了两种方
一是在百度上都能搜到的:
if ( this.name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {
return false;
}
将上面这段代码注释掉。
二是Google的:
if ( this.name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {
return false;
}
rulesCache[ this.name ] = true;
将上面代码替换为
// filter out checkable elements whose name already in cache
if ( validator.checkable(this) && this.name in rulesCache ) {
return false;
}
// select this element (non-checkable) if this has the same name as one in cache
if ( this.name in rulesCache ) {
if ( !validator.objectLength($(this).rules()) ) {
$(this).rules('add', rulesCache[this.name]);
}
return true;
}
// select only the element with rules specified
if ( !validator.objectLength($(this).rules()) ) {
return false;
}
rulesCache[this.name] = $(this).rules();
上面这段代码,目前用的是第二种方法,还没发现有什么问题,对这个文件没有深入了解过,有人用到的各位可以在这交流下。