jquery validate同じ名前を複数検証する方法

2609 ワード

フォーム・ページには、次のコードがあります.
    

質問:jquery validate同じnameを複数検証する場合、最初のinputボックスのみが検証されます.
ソリューション1:フォーム・ページに対応する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;
               });
           }
       }

ソリューション2:ソースファイルのすべてのページを変更して複数の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 //    

ソリューションの検証が使用可能になると、他のソリューションは検証されません.
この文書のソース