您好,欢迎来到微智科技网。
搜索
您的当前位置:首页jQueryValidate校验多个相同name实例分享

jQueryValidate校验多个相同name实例分享

来源:微智科技网


本文主要介绍了jQuery Validate 校验多个相同name的方法,需要的朋友可以参考下,希望能帮助到大家。

导读:

在表单页中有如下代码

 <form>
 <input name="zhai"/><!-- 三个相同name的input -->
 <input name="zhai"/>
 <input name="zhai"/>
 </form>

jquery validate在对多个相同name校验时,只校验第一个input框。

解决方案一:

在表单页对应的js中加入如下代码 只有当前页可以解决对多个name校验

 if ($.validator) {
 $.validator.prototype.elements = function () {
 var validator = this,
 rulesCache = {};
 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);
 }
 rulesCache[this.name] = true;
 return true;
 });
 }
 }

解决方案二:

修改源文件 所有的页面都可以验证多个name

方式1:修改jquery.validate.js文件

用 ctrl+F 查找 this.name in rulesCache 注释掉如下代码。

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;
 });
 },

方式2:修改jquery.validate.min.js文件

用 ctrl+F 查找(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 //添加这行

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务