2010-04-09 5 views
0

J'utilise le plugin jQuery validate() pour certains formulaires et ça marche très bien. La seule chose est que j'ai un champ de saisie qui nécessite un processus de validation spécial. Voici comment ça se passe:jQuery Validate() fonction spéciale

Le plugin jQuery validate est appelé dans le domready pour tous les champs obligatoires.

Voici un exemple pour une entrée:

<li> 
    <label for="nome">Nome completo*</label> 
    <input name="nome" type="text" id="nome" class="required"/> 
</li> 

Et voici comment j'appelle ma fonction spéciale:

<li> 
    <span id="sprytextfield1"> 
     <label for="cpf">CPF* (xxxxxxxxxxx)</label> 
     <input name="cpf" type="text" id="cpf" maxlength="15" class="required" /> 
     <span class="textfieldInvalidFormatMsg">CPF Inv&aacute;lido.</span> 
    </span> 
</li> 

Et au bas du fichier que j'appelle la fonction Spry:

<script type="text/javascript"> 
    <!-- 
     var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1","cpf"); 
    //--> 
</script> 

Bien sûr, j'appelle les fichiers Spry CSS et JavaScript dans la section head ainsi que mon special-validate.js. Lorsque j'utilise simplement le plugin jQuery validate() et que je clique sur le bouton envoyer, la page revient automatiquement au premier champ de saisie erroné et affiche le type d'erreur (pas un numéro, pas un email valide, etc.).

Mais avec cette nouvelle fonction, cette fonction de "retour à la première erreur" ne fonctionne pas, bien sûr, car la fonction validate() le voit bien.

je l'ai déjà ajouté une règle pour une autre forme (sur les images télécharger) et il va comme ceci:

$("#commentForm").validate({ 
    rules: { 
     foto34: { 
      required: true, 
      accept: "jpg|png|gif" 
     } 
    } 
}); 

Maintenant, ma question est, comment puis-je ajouter la fonction de validation spéciale en règle de toute validation processus?

Voici la page pour mieux le comprendre: link text et le champ spécial est le premier: CPF. J'espère que j'ai été clair en expliquant mon problème.

Répondre

0

Je vais répondre à ma propre question car je viens de trouver la solution. I a ajouté la fonction JavaScript pour vérifier mon numéro CPF (numéro d'identification du Brésil) juste avant l'ouverture prêt DOM comme ceci:

jQuery.validator.addMethod(
    "cpf", 
    function (valor){ 
     ... 
    }, 
    "CPF inv&aacute;lido" 
); 

et ici va mon DOM prêt:

$(document).ready(function(){ 
    $("#commentForm").validate({ 
     rules: { 
      campocpf: { 
       required:true, 
       cpf:true 
      }, 
     } 
    }); 
}); 

Si tel est le intéresse certains brésiliens, je peux montrer toute la fonction qui fait la validation CPF (vérifié avec mon propre numéro, fonctionne). J'en ai aussi un autre pour le numéro CNPJ (numéro brésilien pour les entreprises).

Questions connexes