Bonjour à tous.
J'ai découvert un vieux sujet qui semble résolu, mais lorsque je teste la solution, elle ne marche pas.
Voici le problème :
Dans une balise "Select", l'option qui est sélectionnée passe en bleu. Changer la couleur de fond est facile, mais je voudrais changer la couleur de l'option sur laquelle l'utilisateur passe la souris. Probablement à l'aide d'une combinaison de javascript et de CSS en utilisant l'évènement "onchange".
J'ai trouvé ce vieux sujet de 2006 :
http://forum.alsacreations.com/topic-1-20178-1-Selection-et-couleur-dynamique-resolu.html
Un certain Zeke donne une solution qui me semble très bien mais qui ne fonctionne pas lorsque je la teste. Du moins, je ne l'ai peut être pas bien adaptée. Je suis un débutant en javascript.
Ce sujet a deux ans, mais je suis en train de buter sur le même problème. Je ne suis pas encore très expérimenté, surtout en programmation javascript. Je commence à comprendre un peu les CSS et je me débrouille un peu en PHP (qui me semble assez proche du JS).
Là, j'ai exactement le même problème que dans ce sujet, et lorsque je recopie le code de Zeke, qui pourtant me semble bon, l'option sélectionnée de la liste déroulante reste en "bleu" et non pas en vert.
Et cela, aussi bien dans IE que Firefox ou Opera.
Pourtant le code de Zeke me semble bon. J'en comprends la logique mais des détails m'échappent :
En particulier ce qu'il y a dans la fonction "selection" :
Je suis habitué aux fonctions "anonymes" du type "function()"
Qu'est ce que l'on met dans cette parenthèse ? Ce sont des paramètres ? Des variables ? Autre chose ?
Et surtout, est ce que ce sont des éléments prédéfinis dans le javascript, pSelect et pDiv ? Ou bien des éléments qui ont été créés par Zeke ?
Même question pour cette ligne :
"options" est il une "méthode" prédéfinie de "pSelect" ?
(Je ne suis pas un pro de l'informatique, j'ai eu qqs cours et je lis mais je maîtrise encore mal certaines notions surtout que je n'y ai plus touché depuis un an. Avant, je me débrouillais mieux.
Enfin, dernière question ? Qu'est-ce qui fait que le code de Zeke ne marche pas, même pour sa propre page ? Et cela alors que sur le fond, salogique semble impeccable ?
Est-ce qu'il faut adapter les noms de "pDiv" et "pSelect" ?
Merci d'avance.
PS :
Si qqn voit une autre solution, par exemple en CSS pur, je suis également intéressé. Je pense que le :hover ne fonctionne toujours que pour a:hover sous IE7 mais je peux me tromper.
Modifié par Shimrhod (10 Apr 2008 - 18:25)
J'ai découvert un vieux sujet qui semble résolu, mais lorsque je teste la solution, elle ne marche pas.
Voici le problème :
Dans une balise "Select", l'option qui est sélectionnée passe en bleu. Changer la couleur de fond est facile, mais je voudrais changer la couleur de l'option sur laquelle l'utilisateur passe la souris. Probablement à l'aide d'une combinaison de javascript et de CSS en utilisant l'évènement "onchange".
J'ai trouvé ce vieux sujet de 2006 :
http://forum.alsacreations.com/topic-1-20178-1-Selection-et-couleur-dynamique-resolu.html
Un certain Zeke donne une solution qui me semble très bien mais qui ne fonctionne pas lorsque je la teste. Du moins, je ne l'ai peut être pas bien adaptée. Je suis un débutant en javascript.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<style type="text/css">
.chaussure-ressource-nbr {
width: 218px;
height: 30px;
text-align: left;
color: #527307;
padding: 0;
color: #527307
border: solid #94b521 1px;
font-family: Georgia, "Times New Roman", Times, serif;
font-size:13px;
color:#527307;
padding-left: 0px;
margin-bottom: 5px;
float: left;
background-color: #FFFFFF;
}
.chaussure-ressource-nbr select {
float: right;
margin-right: 5px;
margin-top: -10px;
}
</style>
<script type="text/javascript">
function selection(pSelect,pDiv){
var couleur = "#fff";
if(pSelect.options[pSelect.selectedIndex].value != ""){
couleur = "#94b521";
}
document.getElementById(pDiv).style.backgroundColor = couleur;
}
</script>
</head>
<body>
<div id="monDiv" class="chaussure-ressource-nbr"> chaussure (s)
<select name="select" onchange="selection(this,'monDiv')">
<option value=""></option>
<option value="1"> 1</option>
<option value="2">2 </option>
</select>
</div>
</body>
</html>
Ce sujet a deux ans, mais je suis en train de buter sur le même problème. Je ne suis pas encore très expérimenté, surtout en programmation javascript. Je commence à comprendre un peu les CSS et je me débrouille un peu en PHP (qui me semble assez proche du JS).
Là, j'ai exactement le même problème que dans ce sujet, et lorsque je recopie le code de Zeke, qui pourtant me semble bon, l'option sélectionnée de la liste déroulante reste en "bleu" et non pas en vert.
Et cela, aussi bien dans IE que Firefox ou Opera.
Pourtant le code de Zeke me semble bon. J'en comprends la logique mais des détails m'échappent :
En particulier ce qu'il y a dans la fonction "selection" :
function selection(pSelect,pDiv)
Je suis habitué aux fonctions "anonymes" du type "function()"
Qu'est ce que l'on met dans cette parenthèse ? Ce sont des paramètres ? Des variables ? Autre chose ?
Et surtout, est ce que ce sont des éléments prédéfinis dans le javascript, pSelect et pDiv ? Ou bien des éléments qui ont été créés par Zeke ?
Même question pour cette ligne :
f(pSelect.options[pSelect.selectedIndex].value != ""){ ... ... }
"options" est il une "méthode" prédéfinie de "pSelect" ?
(Je ne suis pas un pro de l'informatique, j'ai eu qqs cours et je lis mais je maîtrise encore mal certaines notions surtout que je n'y ai plus touché depuis un an. Avant, je me débrouillais mieux.
Enfin, dernière question ? Qu'est-ce qui fait que le code de Zeke ne marche pas, même pour sa propre page ? Et cela alors que sur le fond, salogique semble impeccable ?
Est-ce qu'il faut adapter les noms de "pDiv" et "pSelect" ?
Merci d'avance.
PS :
Si qqn voit une autre solution, par exemple en CSS pur, je suis également intéressé. Je pense que le :hover ne fonctionne toujours que pour a:hover sous IE7 mais je peux me tromper.
Modifié par Shimrhod (10 Apr 2008 - 18:25)