Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
863 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  montrer/cacher div a partir d'un <select><option>

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

montrer/cacher div a partir d'un <select><option>

n°1784525
sgioani
Posté le 09-09-2008 à 15:33:44  profilanswer
 

Bonjour,  
j'ai cherche partout comment afficher/masquer une DIV en CSS et avec une fonction javascript, dans un <select>,
les solutions trouvees dans les forums et tutos sont a peu pres les memes partout (j'en ai teste plusieurs).
pour des balises en ligne, pas de probleme avec Firefox et IE, cela fonctionne.
cela fonctionne meme avec un des boutons radio
Or ce que je souhaite c'est choisir a partir d'un menu deroulant, donc d'un <select>.
selon le village que je choisis dans la liste deroulante, il s'affiche une Div mentionnant quelle ecole choisir (sur laquelle il y aura un lien)
 
Mon probleme : le code si dessous marche parfaitement sour Firefox et impossible sous IE.
j'ai l'impression a force de chercher de passer a cote de quelque chose d'evident :
voici le code :

Code :
  1. <style>
  2. #village-A,#village-B {
  3. position:absolute;
  4. visibility:hidden;
  5. }
  6. </style>
  7. <!-- fonction essayee initialement puis abandonnée pour celle qui suit mais memes resultats dans IE : ne fonctionne pas ! -->
  8. <script type="text/javascript" language="javascript">
  9. function sgAffiche(nObjet,nEtat) {
  10. document.getElementById(nObjet).style.visibility = (nEtat==0?'hidden':'visible');
  11. }
  12. </script>
  13. <script type="text/javascript" language="javascript">
  14. var ns4=document.layers;
  15. var ie4=document.all;
  16. var ns6=document.getElementById&&!document.all;
  17. function twAfficheCache(nObjet,nEtat) {
  18. // Script gratuit des Trucsweb.com
  19. if(ie4) { // Internet explorer
  20. eval(nObjet).style.visibility = (nEtat==0?'hidden':'visible');
  21. }
  22. else if(ns4) { // Netscape 4.x
  23. document.eval(nObjet).visibility = (nEtat==0?'hidden':'show');
  24. }
  25. else if(ns6) { // Netscape 6 (mozilla)
  26. document.getElementById(nObjet).style.visibility = (nEtat==0?'hidden':'visible');
  27. }
  28. }
  29. </script>
  30. </head>
  31. <body>
  32. <div id="page">
  33. <div id="header"><h1>&nbsp;</h1>
  34. </div>
  35. <br />
  36. <div id="gauche" style="height:250px;">
  37.   <h4>Trouver votre ecole</h4>
  38.   <div style="margin-left:26px; margin-top:0px;padding-top:0px;float:left;">
  39.   <form name="formu_village" method="post" action="#">
  40.     <select name="choixVillage" id="choixVillage">
  41.     <option value="montpellier" onClick="twAfficheCache('village-A',1);twAfficheCache('village-B',0);">Jacou</option>
  42.     <option value="montpellier" onClick="twAfficheCache('village-A',1);twAfficheCache('village-B',0);">Clermont l'herault</option>
  43.     <option value="perpignan" onClick="twAfficheCache('village-A',0);twAfficheCache('village-B',1);">Leucate</option>
  44.     <option value="perpignan" onClick="twAfficheCache('village-A',0);twAfficheCache('village-B',1);">St Cyprien</option>
  45.      </select>
  46.     </form></div>
  47.   <p>
  48. <div id="village-A">Votre ecole :  Montpellier</div>
  49. <div id="village-B">Votre ecole :  Perpignan</a></div>
  50. </p>


 
merci a ceux qui ont la solution  
sand

mood
Publicité
Posté le 09-09-2008 à 15:33:44  profilanswer
 

n°1784548
bul3
Posté le 09-09-2008 à 16:00:37  profilanswer
 

bonjour,

 

avec IE, point d'évênements sur les options !
seul vaut onchange sur la balise <select>

 

et là, this.selectedIndex c'est la n° de ligne,
this.options[this.selectedIndex].value ou .text  c'est le .value ou le .text
de l'option sélectionnée.

 

fonctionne aussi avec les autres navigateurs.
 attention d'ailleurs, si le select a un size=1 ou n'a pas
 de size défini, la 1ère option est sélectionnée par défaut,
 il faudra donc sélectionner une autre ligne avant de pouvoir
 déclencher le onchange sur la ligne 0
 c'est pour ça qu'on voit souvent une 1ère ligne bidon dans les select
 on peut mettre size=2 au mins
 on réinitiliser selectedIndex au focus ? ( onfocus:"this.selectedIndex=-1;" }
  ou...
@+


Message édité par bul3 le 09-09-2008 à 16:05:42

---------------
[mon site] [m'écrire]

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  montrer/cacher div a partir d'un <select><option>

 

Sujets relatifs
problème avec XSL pour générer HTML à partir de XMLComment cacher 2 colonnes de ma table?
problème de AND et OR dans mon select[Javascrpit] Afficher/Cacher un formulaire
Style CSS dans <option>Retouver le form englobant sans partir d'un element
Comment récupérer des données de <select> <option>Générer des PDF à partir d'une BD PHP
[Shell] - Création de comptes a partir d'un fichier txt 
Plus de sujets relatifs à : montrer/cacher div a partir d'un <select><option>


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR