[javascript] désactiver une liste déroulante en cochant 1 bouton radio

désactiver une liste déroulante en cochant 1 bouton radio [javascript] - HTML/CSS - Programmation

Marsh Posté le 25-01-2007 à 01:55:42    

Voila je suis en train de réaliser un formulaire et je voudrai que lorsque je coche un bouton radio cela désactive une liste découlante.Je vous donne un bout de mon code :
 

Code :
  1. <P>
  2.   Aller simple :<INPUT TYPE='RADIO' NAME='type' VALUE='as' checked>
  3.   Aller-retour : <INPUT TYPE='RADIO' NAME='type' VALUE='ar' > &nbsp;
  4. </div>
  5. <p>
  6. <div class="conteneur2">
  7. <div class="centre2">
  8. <FONT COLOR="#ffffff">
  9. <b>Précisez</b> </FONT>
  10. </div>
  11. <p>
  12. <div class="conteneur1">
  13. <div class="centre1">
  14. <b>Date aller :</b>
  15. <script language="javascript">creerselect();</script>
  16. <br>
  17. <b>Date retour :</b>
  18. <script language="javascript">creerselect2();</script>


 
Le souci c'est que je débute en javascript. La fonction creerselect2() me permet d'afficher 3 liste déroulante permettant de selectionner le jour/mois/annee. Donc je voudrai que ces 3 listes se désactivent quand je click sur aller simple
 
voici le code la fonction creer select (assez complexe) :

Code :
  1. function creerselect2(){
  2. // Création de la liste déroulante des numéros des jours
  3. document.write("<select name='jj2'>" );
  4. for(i=1;i<=31;i++){
  5.    document.write("<option value="+i);
  6.    if(aujour.getDate()==i){document.write(" selected" );}
  7.    document.write(">"+i+"</option>" );
  8. }
  9. document.write("</select>" );
  10. // Création de la liste déroulante des libellés des mois
  11. document.write("<select name='mm2'>" );
  12. for(i=0;i<=11;i++){
  13.    document.write("<option value="+i);
  14.    if(aujour.getMonth()==i){document.write(" selected" );}
  15.    document.write(">"+mois[i]+"</option>" );
  16. }
  17. document.write("</select>" );
  18. // Création de la liste déroulante des années  
  19. annee=aujour.getYear();if(annee<1900){annee=annee+1900;}
  20. document.write("<select name='aa2'>" );
  21. for(i=-1;i<=0;i++){
  22.    document.write("<option value="+(annee-i));
  23.    if(i==0){document.write(" selected" );}
  24.    document.write(">"+(annee-i)+"</option>" );
  25. }
  26. document.write("</select>" );


 
merci de votre aide


Message édité par cyberP@cal le 25-01-2007 à 02:01:46
Reply

Marsh Posté le 25-01-2007 à 01:55:42   

Reply

Marsh Posté le 25-01-2007 à 08:11:06    

Il suffit de changer la proriété visibility.

<html>
<head>
 
<script language="javascript">
function creerselect2()
{
  aujour=new Date();
  var mois=new Array(12);
  mois[0]="janvier"; mois[1]="février"; mois[2]="mars";
  mois[3]="avril"; mois[4]="mai"; mois[6]="juin";
  mois[6]="juillet"; mois[7]="aout"; mois[8]="septembre";
  mois[9]="octobre"; mois[10]="novembre"; mois[11]="décembre";
 
  // Création de la liste déroulante des numéros des jours
  document.write("<select name='jj2'>" );
  for(i=1;i<=31;i++) {
     document.write("<option value="+i);
     if (aujour.getDate()==i) {document.write(" selected" );}
     document.write(">"+i+"</option>" );
  }
  document.write("</select>" );
   
  // Création de la liste déroulante des libellés des mois
  document.write("<select name='mm2'>" );
  for(i=0;i<=11;i++) {
     document.write("<option value="+i);
     if (aujour.getMonth()==i) {document.write(" selected" );}
     document.write(">"+mois[i]+"</option>" );
  }
  document.write("</select>" );
 
  // Création de la liste déroulante des années
  annee=aujour.getYear();
  if(annee<1900){annee=annee+1900;}
  document.write("<select name='aa2'>" );
  for(i=-1;i<=0;i++){
     document.write("<option value="+(annee-i));
     if(i==0){document.write(" selected" );}
     document.write(">"+(annee-i)+"</option>" );
  }
  document.write("</select>" );
}
 
function show_hide_date2()
{
   if (document.form1.type[0].checked==true) {
     document.getElementById('jj2').style.visibility='hidden';
     document.getElementById('mm2').style.visibility='hidden';
     document.getElementById('aa2').style.visibility='hidden';
   }
   else {
     document.getElementById('jj2').style.visibility='visible';
     document.getElementById('mm2').style.visibility='visible';
     document.getElementById('aa2').style.visibility='visible';
   }
}
 
</script>
</head>
<body>
 
<form name=form1>
Aller simple :<INPUT TYPE='RADIO' NAME='type' VALUE='as' onClick="show_hide_date2();">
<br>
Aller-retour : <INPUT TYPE='RADIO' NAME='type' VALUE='ar' checked onClick="show_hide_date2();">
 
<script language="javascript">creerselect2();</script>
</form>
 
</body>
</html>

Voilà le travail  :)

Reply

Marsh Posté le 25-01-2007 à 11:25:44    

merci mais ca ne fonctionne pas avec firefox, et avec ie sa marche uniquement avec ton code uniquement, des je l'integre dans ma page sa marche plus ...

Reply

Marsh Posté le 25-01-2007 à 11:33:42    

je redonne ma page entiere pour que vous comprenais mieux:  
 

Code :
  1. <?php
  2. require("Util.php" );
  3. //  require ("JournalVisiteurs.php" );
  4. Entete ("Easy Way", "Easy Way" );
  5. // Connexion à la base
  6. $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
  7. if (!$connexion)
  8. {
  9.   echo "Désolé, connexion à " . SERVEUR . " impossible\n";
  10.   exit;
  11. }
  12. if (!mysql_select_db (BASE, $connexion))
  13. {
  14.   echo "Désolé, accès à la base " . BASE . " impossible\n";
  15.   exit;
  16. }
  17. date_default_timezone_set("Europe/Paris" ) ;
  18. ?>
  19. <HTML>
  20. <HEAD>
  21. <TITLE>Réserver un vol</TITLE>
  22. <LINK REL=stylesheet HREF="vol.css" TYPE="text/css">
  23. <script language="javascript">
  24. <!--
  25. aujour=new Date(); // Pour générer les années
  26. // table des libellés des mois
  27. mois=new Array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août",
  28. "Septembre","Octobre","Novembre","Décembre" );
  29. // Création des select pour les vols de départ
  30. function creerselect(){
  31. // Création de la liste déroulante des numéros des jours
  32. document.write("<select name='jj'>" );
  33. for(i=1;i<=31;i++){
  34.    document.write("<option value="+i);
  35.    if(aujour.getDate()==i){document.write(" selected" );}
  36.    document.write(">"+i+"</option>" );
  37. }
  38. document.write("</select>" );
  39. // Création de la liste déroulante des libellés des mois
  40. document.write("<select name='mm'>" );
  41. for(i=0;i<=11;i++){
  42.    document.write("<option value="+i);
  43.    if(aujour.getMonth()==i){document.write(" selected" );}
  44.    document.write(">"+mois[i]+"</option>" );
  45. }
  46. document.write("</select>" );
  47. // Création de la liste déroulante des années  
  48. annee=aujour.getYear();if(annee<1900){annee=annee+1900;}
  49. document.write("<select name='aa'>" );
  50. for(i=-1;i<=0;i++){
  51.    document.write("<option value="+(annee-i));
  52.    if(i==0){document.write(" selected" );}
  53.    document.write(">"+(annee-i)+"</option>" );
  54. }
  55. document.write("</select>" );
  56. }
  57. // Création des select pour les vols de d'arrivé
  58. function creerselect2(){
  59. // Création de la liste déroulante des numéros des jours
  60. document.write("<select name='jj2'>" );
  61. for(i=1;i<=31;i++){
  62.    document.write("<option value="+i);
  63.    if(aujour.getDate()==i){document.write(" selected" );}
  64.    document.write(">"+i+"</option>" );
  65. }
  66. document.write("</select>" );
  67. // Création de la liste déroulante des libellés des mois
  68. document.write("<select name='mm2'>" );
  69. for(i=0;i<=11;i++){
  70.    document.write("<option value="+i);
  71.    if(aujour.getMonth()==i){document.write(" selected" );}
  72.    document.write(">"+mois[i]+"</option>" );
  73. }
  74. document.write("</select>" );
  75. // Création de la liste déroulante des années  
  76. annee=aujour.getYear();if(annee<1900){annee=annee+1900;}
  77. document.write("<select name='aa2'>" );
  78. for(i=-1;i<=0;i++){
  79.    document.write("<option value="+(annee-i));
  80.    if(i==0){document.write(" selected" );}
  81.    document.write(">"+(annee-i)+"</option>" );
  82. }
  83. document.write("</select>" );
  84. }
  85. // Vérification des select
  86. function verif(){
  87. // On crée une date avec les jj/mm/aa saisis
  88. testDate=new Date(document.frm.aa.value,document.frm.mm.value,document.frm.jj.value);
  89. testDate2=new Date(document.frm.aa2.value,document.frm.mm2.value,document.frm.jj2.value);
  90. mess="";
  91. // Est-ce le numéro du jour correspond à  celui de la date créée ?
  92. if(testDate.getDate()!=document.frm.jj.value){mess="Veillez verifier la date de départ";}
  93. if(testDate2.getDate()!=document.frm.jj2.value){mess="Veillez verifier la date d'arrivée";}
  94. // Est-ce le numéro du mois correspond à celui de la date créée ?
  95. if(testDate.getMonth()!=document.frm.mm.value){mess="Veillez verifier la date de départ";}
  96. if(testDate2.getMonth()!=document.frm.mm2.value){mess="Veillez verifier la date d'arrivée";}
  97. // Y a-t-il eu des erreurs ?
  98. if(mess!="" )
  99. {
  100. alert(mess);
  101. document.frm.jj.focus();
  102. document.frm.jj2.focus();
  103. return false;
  104. }
  105.  
  106. else {
  107. if(document.frm.depart.value == document.frm.arrive.value) 
  108. {
  109.    alert("Veillez choisir une ville de départ differente de celle d'arrivée" );
  110.    document.frm.depart.focus();
  111.    return false;
  112. }
  113. }
  114. //-->
  115. </script>
  116. </HEAD>
  117. <BODY>
  118. <H1><center>Bienvenue sur le site Easy Way</center></H1>
  119. <br>
  120. <br>
  121. <form name="frm" action="rechercheVol.php" method="post" onSubmit="return verif()">
  122. <div class="conteneur2">
  123. <div class="centre2">
  124. <FONT COLOR="#ffffff">
  125. <b>Votre voyage</b> </FONT>
  126. </div>
  127. <p>
  128. <div class="conteneur1">
  129. <div class="centre1">
  130. <?php
  131. $resultat = mysql_query ("SELECT * FROM depart order by nomDepart", $connexion);
  132. echo "<b>Partir de :</b>
  133. <SELECT NAME='depart' SIZE=1>";
  134. if ($resultat)
  135. {
  136.   while ($dep = mysql_fetch_object ($resultat))
  137.     {
  138.   //$i=$i+1;
  139.   echo "<OPTION VALUE=$dep->numDepart>$dep->nomDepart";
  140.     }
  141. }
  142. else
  143.   echo "<B>Erreur dans l'exécution de la requête.</B><BR>";
  144.   echo "<B>Message de MySQL :</B> " .  mysql_error($connexion);
  145. echo "</SELECT><p>";
  146. $resultat2 = mysql_query ("SELECT * FROM arrive order by nomArrive", $connexion);
  147. echo "<b>Arriver à :</b>
  148. <SELECT NAME='arrive' SIZE=1>";
  149. if ($resultat2)
  150. {
  151.   while ($arr = mysql_fetch_object ($resultat2))
  152.     {   
  153.   echo "<OPTION VALUE=$arr->numArrive>$arr->nomArrive";
  154.     }
  155. }
  156. else
  157.   echo "<B>Erreur dans l'exécution de la requête.</B><BR>";
  158.   echo "<B>Message de MySQL :</B> " .  mysql_error($connexion);
  159. echo "</SELECT>";
  160. ?>
  161.  
  162.  
  163. <P>
  164.   Aller simple :<INPUT TYPE='RADIO' NAME='type' VALUE='as' checked>
  165.   Aller-retour : <INPUT TYPE='RADIO' NAME='type' VALUE='ar' > &nbsp;
  166. </div>
  167. <p>
  168. <div class="conteneur2">
  169. <div class="centre2">
  170. <FONT COLOR="#ffffff">
  171. <b>Précisez</b> </FONT>
  172. </div>
  173. <p>
  174. <div class="conteneur1">
  175. <div class="centre1">
  176. <b>Date aller :</b>
  177. <script language="javascript">creerselect();</script>
  178. <br>
  179. <b>Date retour :</b>
  180. <script language="javascript">creerselect2();</script>
  181.  
  182. <P>
  183.   Nombre de personnes <FONT COLOR="#ff0000">(15 ans et +) </font>:
  184.   <SELECT NAME='nbPers' SIZE=1>
  185.   <OPTION VALUE=1>1
  186.   <OPTION VALUE=2>2
  187.   <OPTION VALUE=3>3
  188.   <OPTION VALUE=4>4
  189.   <OPTION VALUE=5>5
  190.   <OPTION VALUE=6>6
  191.   </SELECT>
  192.  
  193.   <p>
  194.   Nombre d'enfants <FONT COLOR="#ff0000">(- de 15 ans) </font>:
  195.   <SELECT NAME='nbEnf' SIZE=1>
  196.   <OPTION VALUE=1>0 
  197.   <OPTION VALUE=2>1
  198.   <OPTION VALUE=3>2
  199.   <OPTION VALUE=4>3
  200.   <OPTION VALUE=5>4
  201.   <OPTION VALUE=6>5
  202.   </SELECT>
  203. </div>
  204. <p>
  205. <div class="conteneur2">
  206. <div class="centre2">
  207. <FONT COLOR="#ffffff">
  208. <b>Votre choix</b> </FONT>
  209. </div>
  210. <p>
  211. </form>
  212.   <INPUT TYPE='SUBMIT' VALUE='Rechercher un vol'>
  213.   <INPUT TYPE='RESET' VALUE='Annuler'>
  214. <p>
  215.  
  216. </BODY></HTML>
  217. <?php
  218.   PiedDePage();
  219. ?>


 
Je voudrai que sa fasse un peu comme sur le site d'air france : http://www.airfrance.fr/cgi-bin/AF [...] dgfndfkj.0
 
Quand on click sur aller simple le select des dates se désactive.

Reply

Marsh Posté le 25-01-2007 à 12:13:04    

Si t'as une page qui fonctionne de cette maniére là, alors pourquoi tu ne regarde pas le code javascript de la dite page afin de l'adapter à la tienne?

Reply

Marsh Posté le 25-01-2007 à 13:38:47    

Pour que ça marche sous Firefox, il faudrait utiliser "id=..." au lieu ou en plus de "name=..." pour tous les éléments qui sont impliqués dans les getElementById().

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed