PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 10-07-2009 15:22:20

Sha-ka
Client réputé
Inscription : 10-05-2009
Messages : 15

[Résolu] Un petit temps de retard pour un input radio

Bonjour.

J'ai dans l'idée de proposer 2 types de formulaires. Un sera visible par défaut, l'autre le sera uniquement si l'on coche une case. Pour ce faire, j'ai mis en place ce code :

<script type="text/javascript">
<!--

function toggleDisplay(elmt)
{
   if(typeof elmt == "string")
      elmt = document.getElementById(elmt);
   if(elmt.style.display == "none")
      elmt.style.display = "";
   else
      elmt.style.display = "none";
}

// -->
</script>


//le code html

//le choix proposé
<input type="radio" name="contenu" value="Non" onclick="toggleDisplay('conteu2');" />Oui
          <input type="radio" name="contenu" value="Oui" onclick="toggleDisplay('conteu');" checked />Non<br /><br />



          <div id="conteu2" style="display: none;">blabla</div>

          <div id="conteu">blabla</div>

Le code globalement marche, par défaut, le formulaire de conteu s'affiche, sauf que lorsque je coche sur le oui, le formulaire de conteu ne disparait pas. Lorsque je recoche Non, le formulaire conteu disparait, reste le conteu2. Et si je remet oui, il n'y a plus aucun formulaire.
en clair, le code a un temps de retard et je ne saisi pas pourquoi, si quelqu'un avait une idée sur le sujet, d'avance merci smile

Hors ligne

#2 10-07-2009 20:28:58

BenGhost
Membre
Inscription : 10-07-2009
Messages : 2

Re : [Résolu] Un petit temps de retard pour un input radio

Reponse que me semble trop simple (j'ai pas compris ton besoin en fait) mais bon :

<script type="text/javascript">
<!--

function toggleDisplay(elmt)
{
   if(typeof elmt == "string")
      elmt = document.getElementById(elmt);
   if(elmt.style.display == "none")
      elmt.style.display = "";
   else
      elmt.style.display = "none";
}

// -->
</script>


//le code html

//le choix proposé
<input type="radio" name="contenu" value="Non" onclick="toggleDisplay('conteu2');" />Oui
          <input type="radio" name="contenu" value="Oui" onclick="toggleDisplay('conteu2');" checked />Non<br /><br />

          <div id="conteu2" style="display: none;">blabla</div>

          <div id="conteu">blabla</div>

Hors ligne

#3 10-07-2009 22:16:02

Sha-ka
Client réputé
Inscription : 10-05-2009
Messages : 15

Re : [Résolu] Un petit temps de retard pour un input radio

Hello et merci. Sauf qu'avec ce code, le div conteu est visible en permanence, quel que soit le choix.
Alors, je vais prendre un exemple pour tenter d'être plus clair

Par défaut :
Non
--> affichage de conteu

Sinon
Oui
--> affichage de conteu2

Les deux div doivent s'afficher alternativement en fait.

Hors ligne

#4 11-07-2009 08:48:52

BenGhost
Membre
Inscription : 10-07-2009
Messages : 2

Re : [Résolu] Un petit temps de retard pour un input radio

Mouuuuaaaaa d'accord là je comprend mieux :
donc lorsque l'une s'affiche  l'autre se cache ...
Dans ce cas il parait logique que tu doivent faire 2 action dans ton cas:
L'un pour le fait de cacher une div
L'autre pour rendre visble l'autre div

En gros ça donne ça :

<script type="text/javascript">
<!--

function toggleDisplay(elmt)
{
   if(typeof elmt == "string")
      elmt = document.getElementById(elmt);
   if(elmt.style.display == "none")
      elmt.style.display = "";
   else
      elmt.style.display = "none";
}

// -->
</script>


//le code html

//le choix proposé
<input type="radio" name="contenu" value="Non" onclick="toggleDisplay('conteu2');toggleDisplay('conteu');" />Oui
          <input type="radio" name="contenu" value="Oui" onclick="toggleDisplay('conteu2');toggleDisplay('conteu');" checked />Non<br /><br />

          <div id="conteu2" style="display: none;">blabla2</div>

          <div id="conteu">blabla</div>

Hors ligne

#5 11-07-2009 11:24:15

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] Un petit temps de retard pour un input radio

Le contraire de display:none n'est pas display:'' mais  display:block ou  display:inline........


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 12-07-2009 10:20:38

Sha-ka
Client réputé
Inscription : 10-05-2009
Messages : 15

Re : [Résolu] Un petit temps de retard pour un input radio

Merci, ça marche nickel smile
Et désolé de m'être trompé de forum, j'ai pas encore l'habitude on va dire tongue

Hors ligne

Pied de page des forums