Fonction avec plusieurs paramètres

Résolu
cs_yannus29 Messages postés 8 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 mars 2009 - 12 mars 2009 à 10:16
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 16 mars 2009 à 14:19
Bonjour,

Je souhaite faire une fonction qui affiche un bloc si le client choisi "oui" dans le formulaire. Voici mon premier code :

Dans le HEAD :
<script type="text/javascript" language="javascript">
function aff_div(idDiv) {
 cheminChamp = document.insNe.pec;
 for (i=0;i<cheminChamp.length;i++) {
  if (cheminChamp[i].checked) {
   checkVal=cheminChamp[i].value;
  }
 }
 if (checkVal == 1) {
  document.getElementById(idDiv).style.display = 'block';
 }
 else {
  document.getElementById(idDiv).style.display = 'none';
 }
}
</script>

Dans le BODY :
<form name="insNe" id="insNe" method="post" action="">
   

    PRISE EN CHARGE * :
    &nbsp;OUI
    &nbsp;NON
   

   
Ok &ccedil;a fonctionne
   

</form>

Jusqu'ici tout va bien ça fonctionne très bien. Seulement j'ai voulu pousser un peu ma fonction pour pouvoir la réutiliser plus facilement : en plus de passer en paramètre l'id du bloc DIV que je veux afficher, je veux passer le nom du formulaire et le nom du champ à tester et là cela ne fonctionne plus . Voici le code :

Dans le HEAD :
<script type="text/javascript" language="javascript">
function aff_div(nomform,nomradio,idDiv) {
 cheminChamp = document+"."+nomform+"."+nomradio;
 for (i=0;i<cheminChamp.length;i++) {
  if (cheminChamp[i].checked) {
   checkVal=cheminChamp[i].value;
  }
 }
 if (checkVal == 1) {
  document.getElementById(idDiv).style.display = 'block';
 }
 else {
  document.getElementById(idDiv).style.display = 'none';
 }
}
</script>

Dans le BODY :
<form name="insNe" id="insNe" method="post" action="">
   

    PRISE EN CHARGE * :
    &nbsp;OUI
    &nbsp;NON
   

   
Ok &ccedil;a fonctionne
   

</form>

Merci de votre aide.

16 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
12 mars 2009 à 11:44
oui....  pas été assez loin

_ le div n'a pas de name donc pour l'utiliser : par l'id seulement
_ s'il en avait un : il ne peut pas être appeler 'dans un form' je crois (?)
_ il faudrait que tu utilises document.forms[nomForm]....
   ou mieux (?) dans l'appel mettre
   aff_div ( document.isNe, document.isNe.pec, document.getElementById('depVilleRam') )
   et dans ta fonction var cheminChamp = nomradio;...
                               if (checkVal == 1) {
                                         idDiv.style.display = 'block'; ...

   ou pas loin
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
12 mars 2009 à 12:39
.....
         &nbsp;OUI
        
.........
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
13 mars 2009 à 17:22
° 1 seule question par demande normalement
° quand on veut... on peut !
° question oh combien récurrente !!!
   la moindre recherche donnera une foultitude de réponses

mais bon : ch'tiot exemple ici
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
12 mars 2009 à 11:02
Bonjour,

sans regarder plus, dans un 1er temps

au lieu de cheminChamp = document+"."+nomform+"."+nomradio;
mettre tout simplement var cheminChamp = document.nomform.nomradio;

Cordialement [mon Site] [M'écrire] Bul
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_yannus29 Messages postés 8 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 mars 2009
12 mars 2009 à 11:18
Merci de ta réponse Bul3.
J'avais essayé mais ce n'est pas mieux, la console de la Web Developer Toolbar de FireFox me dit "document.nomform is undefined" et avec la concaténation j'ai "checkVal is undefined"...
0
cs_yannus29 Messages postés 8 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 mars 2009
12 mars 2009 à 12:20
Exact ! à une petite nuance près : comme dans l'appel de la fonction on indique "document.insNe.pec" pour le bouton radio, je n'ai plus besoin du premier paramètre de ma fonction.
Voila ce que cela donne si ça peut aider quelqu'un :

HEAD :

<script type="text/javascript" language="javascript">
function aff_div(nomradio,idDiv) {
 cheminChamp = nomradio;
 for (i=0;i<cheminChamp.length;i++) {
  if (cheminChamp[i].checked) {
   checkVal=cheminChamp[i].value;
  }
 }
 if (checkVal == 1) {
  idDiv.style.display = 'block';
 }
 else {
  idDiv.style.display = 'none';
 }
}
</script>

BODY :

<form name="insNe" id="insNe" method="post" action="">
   

    PRISE EN CHARGE * :
    &nbsp;OUI
    &nbsp;NON
   

   
Ok &ccedil;a fonctionne
   

</form>

Merci bcp Bul3
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
12 mars 2009 à 12:30
on peut "simplifier"

   <script type="text/javascript">

        function aff_div(nomradio,idDiv)

        {    if ( nomradio.value == "1" )

                    {    idDiv.style.display = 'block';    }

            else     {    idDiv.style.display = 'none';    }

        }

    </script>

    <form name="insNe" id="insNe" method="post" action="">

        

         PRISE EN CHARGE * :

         &nbsp;OUI

         &nbsp;NON

        

        
Ok &ccedil;a
fonctionne

        

    </form>

au moins;... dans un 1er temps

 
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
12 mars 2009 à 12:34
et... pourquoi passer par une fonction
pour faire un test sur le radio coché ????
fais directement display="none" ou display="block" dans
le onclick !
ce sera encore mieux
0
cs_yannus29 Messages postés 8 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 mars 2009
12 mars 2009 à 15:40
Je n'y avais pas pensé... Je vais essayer, si ça fonctionne je me sentirais bien bête parce que je suis la dessus depuis hier midi !
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
12 mars 2009 à 15:51
t'inquiète... j'ai souvent fait bien pire ;o(
0
cs_yannus29 Messages postés 8 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 mars 2009
12 mars 2009 à 16:04
 Bien vu, j'ai voulu me compliquer la vie en faisant une fonction pour mieux réutiliser... Rien ne vaut la simplicité.
0
cs_yannus29 Messages postés 8 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 mars 2009
13 mars 2009 à 16:59
Tant que j'y suis tu pourras peut être m'aider pour la suite...

Je veux que le visiteur choisisse un département dans la liste quand le bouton oui est coché (c'est ce qu'on a déjà fait) et en suite suivant le département choisi il faut aller chercher dans ma base de donnée les villes dont le code postal commence par le numéro de département choisi et les affiche dans une nouvelle liste déroulante.

J'espère être assez clair, le week-end est proche et la fatigue est grande !
0
cs_yannus29 Messages postés 8 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 mars 2009
16 mars 2009 à 12:37
Excellent c'est formidable tout ça. Je vais pouvoir continuer d'avancer tranquilou !

Merki beaucoup m'sieu
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
16 mars 2009 à 12:48
m'sieu.. m'sieu... ? j'suis une dame.
nickel si ça baigne
0
cs_yannus29 Messages postés 8 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 mars 2009
16 mars 2009 à 14:11
oups   Désolé...
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
16 mars 2009 à 14:19
y'a pas d'male !
0
Rejoignez-nous