Maison  >  Article  >  interface Web  >  jQuery Validate vérifie le partage de plusieurs instances du même nom

jQuery Validate vérifie le partage de plusieurs instances du même nom

小云云
小云云original
2018-01-12 09:07:581889parcourir

Cet article présente principalement la méthode de jQuery Validate pour vérifier plusieurs noms identiques. Les amis qui en ont besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.

Introduction :

Il y a le code suivant dans la page du formulaire

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

jquery validate vérifie uniquement la première zone de saisie lors de la validation de plusieurs mêmes noms.

Solution un :

Ajoutez le code suivant au js correspondant à la page du formulaire Seule la page actuelle peut résoudre la vérification de plusieurs noms

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

Solution deux. :

Modifiez le fichier source et toutes les pages peuvent vérifier plusieurs noms

Méthode 1 : Modifiez le fichier jquery.validate.js

Utilisez ctrl+F pour trouver ce .name dans RulesCache Commentez le code suivant.

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

Méthode 2 : Modifier le fichier jquery.validate.min.js

Utilisez ctrl+F pour rechercher (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 //添加这行

Recommandations associées :

Spring shiro bootstrap jquery.validate méthode d'implémentation des fonctions de connexion et d'enregistrement

jQuery Formulaire de validation Explication détaillée du plug-in de validation

jquery.validate.js Explication détaillée de la façon de gérer plusieurs noms identiques

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn