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 //添加这行

以上所述是小编给大家介绍的jQuery Validate 校验多个相同name的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 jQuery Validate 校验多个相同name的方法 的全部内容, 来源链接: utcz.com/z/313929.html

回到顶部