IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

plugin Validate. Validation de champs dynamiques dans un formulaire


Sujet :

jQuery

  1. #1
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 14
    Par défaut plugin Validate. Validation de champs dynamiques dans un formulaire
    Bonjour,

    Je crée dynamiquement des champs input dans un formulaire (http://nicolasrio.fr/test2.html). La source est là : http://pastebin.com/LatweLuN

    Je souhaite valider (plugin jquery.validate) ces champs texte de façon à ce qu'ils soient rendus obligatoires avant soumission du formulaire.

    Problème : cliquez sur le bouton 'Add a horse' deux fois, cela ajoute deux lignes dans le tableau. Ensuite, cliquez sur le bouton 'Validate' sans remplir aucun champ. Seul le premier input s'est vu attribuer la classe error. Cela ne va pas. Les deux champs de la table auraient du être rouges car non valides.

    Bizarrerie : si, à ce moment, on clique dans le second champ input de la table et qu'on clique ailleurs (focus puis blur), le champ devient rouge !

    Dans cet exemple, j'ajoute une règle pour chaque champ input de la table (cf. http://pastebin.com/LatweLuN, ligne 94). Je précise que j'ai également essayé avec la méthode jQuery.validator.addClassRules, qui permet d'affecter une règle de validation à aux éléments d'une certaine classe, sans plus de succès : le comportement est le même qu'avec le rules("add", ...).

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 14
    Par défaut J'ai trouvé !
    Si quelqu'un passe par là et est intéressé :

    Dans mon exemple, tous les champs dynamiques avaient le même attribut name="nomCheval[]" permettant de tout récupérer dans un tableau en PHP.

    Il semble que le plugin validate a besoin d'un attribut name différent pour chaque élément à valider.

    La ruse : lors de la génération des inputs, je donne un name unique, puis, dans l'option submitHandler de validate, j'ai ajouté le code suivant pour renommer les inputs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("[input[name^='nomCheval']").each(function(){
           $(this).attr('name', 'nomCheval[]');
    });

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Champs dynamiques dans un formulaire
    Par Neolex dans le forum Symfony
    Réponses: 4
    Dernier message: 24/11/2014, 10h35
  2. Réponses: 5
    Dernier message: 24/11/2011, 11h22
  3. Validation d'un champ contenu dans un tableau
    Par alpha232 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 17/07/2010, 22h20
  4. [AC-2003] Regle de validation sur des champs dates dans des tables différentes
    Par ingal30 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2010, 18h42
  5. Création de champ dynamique dans un formulaire
    Par alex75 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/04/2006, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo