jquery validation对隐藏的元素不进行验证

validation默认不会对Hidden元素进行验证的,但最近使用了 thinkcmf开发了一个系统后台,在验证时发现隐藏的元素也进行了验证
刚开始以为是  validation版本问题(当前版本取消了默认不对 Hidden的验证 ),但查看了 validation源码却发现原来是 thinkcmf的作者对 validation进行了更改(取消了 默认不对 Hidden的验证 )
知道了原因更改进来就很简单了,在验证时手动再加上即可
//官网上的例子
$("#myform").validate({
  ignore: ":hidden",//不验证的元素
});

  

 
//可以看到在源码中看到对:submit, :reset, :image, :disabled不进行验证和自定义的不验证规则
//我们只需要设置ignore 属性即可,当前也可以将元素设置为disabled
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, [contenteditable]" )
			.not( ":submit, :reset, :image, :disabled" )
			.not( this.settings.ignore )
			.filter( function() {
				var name = this.name || $( this ).attr( "name" ); // For contenteditable
				if ( !name && validator.settings.debug && window.console ) {
					console.error( "%o has no name assigned", this );
				}
				// Set form expando on contenteditable
				if ( this.hasAttribute( "contenteditable" ) ) {
					this.form = $( this ).closest( "form" )[ 0 ];
				}
				// Select only the first element for each name, and only those with rules specified
				if ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {
					return false;
				}
				rulesCache[ name ] = true;
				return true;
			} );
		},

  

参考:





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值