jQuery Validate 校验多个相同name的方法
编程学习 2021-07-04 18:32www.dzhlxh.cn编程入门
这篇文章主要介绍了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; /