jquery.validate.js,多个name属性相同的验证

用过的人应该知道,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();

上面这段代码,目前用的是第二种方法,还没发现有什么问题,对这个文件没有深入了解过,有人用到的各位可以在这交流下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值