Validation de formulaire avec jQuery : problème textarea [Résolu]

cs_Xaviou 154 Messages postés dimanche 1 avril 2001Date d'inscription 2 octobre 2009 Dernière intervention - 28 juil. 2009 à 09:58 - Dernière réponse : cs_Xaviou 154 Messages postés dimanche 1 avril 2001Date d'inscription 2 octobre 2009 Dernière intervention
- 21 août 2009 à 20:45
Bonjour à tous.

Je me suis récement mis au JavaScript, et plus précisément à jQuery.

Je rencontre quelques soucis pour la validation d'un formulaire.

Voici le contexte :
J'ai une page contenant deux formulaires :
[list]
[*] un contenant un champ "hidden" et une textarea
[*] le deuxième ne contenant qu'un champ "hidden"
/list
J'ai également deux boutons permettant d'afficher/cacher l'un ou l'autre avec des effets jQuery.
Jusque là, tout va bien.

Par contre, j'ai une fonction "générique" permettant de valider tous les formulaires du site.
Sur les pages ne contenant qu'un seul formulaire, il n'y a pas de problème : ça marche impec.
Mais sur la page contenant les deux formulaires, la validation du deuxième (celui ne contenant qu'un champ "hidden") va également chercher la valeur de la textarea du premier formulaire (et comme c'est un champ requis, et qu'il est vide, l'envoi des données ne peut pas se faire).

Voici une page toute simple, avec deux formulaires, faisant apparaitre le problème :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <script type="text/javascript" src="jquery/jquery-1.3_compressed.js"></script>
    <script type="text/javascript">
        function validateForm(form_id){
            var dbg_vars=$('#'+form_id+' input, textarea').serialize();
            alert(dbg_vars);
        }
    </script>
    <title>Test Page</title>
</head>

    <form id="form1" name="form1" action="">
        <fieldset>
            <legend>Formulaire No1</legend>
            
            <textarea id="zone_texte1" name="zone_texte1"></textarea>

            

            
        </fieldset>
        

    </form>
    

    <form id="form2" name="form2" action="">
        <fieldset>
            <legend>Formulaire No2</legend>
            
            
        </fieldset>
        

    </form>

</html>


Cette page ne fait qu'afficher les données du formulaire vérifié, mais on voit qu'en validant le deuxième formulaire, la textarea est sélectionnée.

Il y a sans doute quelquechose que je ne vois pas, mais justement, je ne le vois pas...

Merci d'avance pour vos éclaircissements.

@+
Xav'
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Darktruff 34 Messages postés jeudi 31 mai 2007Date d'inscription 31 mars 2011 Dernière intervention - 21 août 2009 à 16:02
3
Merci
Enlève les "input et textarea" de ton selecteur comme ceci :
var dbg_vars=$('#'+form_id).serialize();

Je sais pas si tu as déjà traiter la chose mais bon voilà une solution à ton problème.

Cordialement,

Darktruff.

Merci Darktruff 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 128 internautes ce mois-ci

Commenter la réponse de Darktruff
cs_Xaviou 154 Messages postés dimanche 1 avril 2001Date d'inscription 2 octobre 2009 Dernière intervention - 21 août 2009 à 20:45
0
Merci
C'est nickel : merci
Commenter la réponse de cs_Xaviou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.