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

JavaScript Discussion :

Probleme valeur de parametre dans une fonction


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Probleme valeur de parametre dans une fonction
    Bonjour,

    je veux faire une fonction générique me permettant de cacher une partie d'un formulaire (une div) dans la page et de l'afficher lorsqu'on clique sur un checkbox particulier.

    Voici la fonction que j'ai ecrite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    /*******************************************************************/
    /* Fonction permettant de rendre visible un element de formulaire  */
    /*******************************************************************/
    function rendreVisible(formulaire,declencheur) 
    {
    	var rep = document.getElementById("reponseVisible");
     
    	if (document.formulaire.declencheur.checked == true)
    	{
    		if (rep.style.visibility == "hidden")
        			rep.style.visibility = "visible";
    	}
    	else
      	{
        		rep.style.visibility = "hidden";
      	}
    }
    le probleme est à la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.formulaire.declencheur.checked
    car il interprete formulaire comme le nom du formulaire ainsi que declencheur comme le nom de l'element... Or je voudrais récupérer les valeurs de mes parametres

    Voici comment j'appelle ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <form name="checkvalidate" action="monsite/servlet/tech/formCreatRef/" method="post">
    <table>
    <tr>
    <td align="right"><label>Assy</label></td>
    <td>:</td>
    <td><input type="checkbox" name="assy" value="false" onClick="rendreVisible(checkvalidate,assy);"></td>
    </tr>
    </table>
     
    // invisible tant que assy n'est pas coche
    <div id="reponseVisible" style="visibility: hidden">
    <table border="0" cellpadding="0" cellspacing="5">
    <tr>
    <td align="right"><label>Numero assy</label></td>
    <td>:</td>
    <td><input type="text" name="refassy" value=""></td>
    </tr>
    <tr>
    <td align="right"><label>debite une 200</label></td>
    <td>:</td>
    <td  colspan="4"><input type="checkbox" name="deb200" value="false"></td>
    </tr>
    </table>
    </div>
    Si quelqu'un peut m'aider ce serait super sympa parce que je galere depuis un bon gros bour de temps...

    Merci

    Titou

  2. #2
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Appelle ta fonction comme suit (attention aux '):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onClick="rendreVisible('checkvalidate','assy');"
    et modifie ton source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    eval("result=document." + formulaire+"."+declencheur+".checked");
    if ( result)
    à la place de ton if et ca devrait mieux se passer...

    tu pourrai egalement passer le champ dans ton appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onClick="rendreVisible(this)"
    et faire
    Au choix...

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu peux aussi faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <script type="text/javascript" language="javascript">
    /*******************************************************************/ 
    /* Fonction permettant de rendre visible un element de formulaire  */ 
    /*******************************************************************/ 
    function rendreVisible(declencheur) 
    { 
       var rep = document.getElementById("reponseVisible"); 
       if (document.getElementById(declencheur).checked == true) 
       { 
     
    	  if (rep.style.visibility == "hidden") 
                 rep.style.visibility = "visible"; 
       } 
       else 
         { 
              rep.style.visibility = "hidden"; 
         } 
     
    }
    </script>
     
    </head>
     
    <body>
    <form name="checkvalidate" action="monsite/servlet/tech/formCreatRef/" method="post"> 
    <table> 
    <tr> 
    <td align="right"><label>Assy</label></td> 
    <td>:</td> 
    <td><input type="checkbox" id="assy" value="false" onClick="rendreVisible('assy');"></td> 
    </tr> 
    </table> 
     
    // invisible tant que assy n'est pas coche 
    <div id="reponseVisible" style="visibility: hidden"> 
    <table border="0" cellpadding="0" cellspacing="5"> 
    <tr> 
    <td align="right"><label>Numero assy</label></td> 
    <td>:</td> 
    <td><input type="text" name="refassy" value=""></td> 
    </tr> 
    <tr> 
    <td align="right"><label>debite une 200</label></td> 
    <td>:</td> 
    <td  colspan="4"><input type="checkbox" name="deb200" value="false"></td> 
    </tr> 
    </table> 
    </div> 
    </form>
    </body>

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup pour vos réponses, ca fonctionne tres bien

    @bientot

    Titou

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

Discussions similaires

  1. [C#] Passer des contrôles comme parametre dans une fonction
    Par sara21 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/09/2006, 13h05
  2. oublier volontairement des parametres dans une fonction
    Par Joe Le Mort dans le forum Langage
    Réponses: 2
    Dernier message: 23/08/2006, 16h12
  3. Passer un tableau en parametre dans une fonction js
    Par hellmaster78 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/06/2005, 14h35
  4. Réponses: 6
    Dernier message: 24/12/2004, 16h46
  5. [langage] Passage de paramètres dans une fonction
    Par And_the_problem_is dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2004, 08h20

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