jquery validate 如何校验多个相同name

来源:互联网 发布:python tkinter 滚动条 编辑:程序博客网 时间:2024/05/28 03:03

导读:

在表单页中有如下代码

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

本文来源 : http://www.cnblogs.com/danywdd/p/5667903.html

原创粉丝点击