Page 1 sur 1

onchange et class

Posté : 25 juin 2005, 18:16
par guy
Bonjour
Je voudrait dans un select grace a la fonction onchange de JS modifier la class css de ce meme select . Est ce possible ?
<form action="test.php" method="post">
<select class="couleurbase" onchange?????????? >
<option value="couleur1">1</option>
<option value="couleur2">2</option>
<option value="couleur3">3</option>
<option value="couleur4">4</option>
<option value="couleur4">4</option>
</select></form>
donc le but serait de changer la classe couleurbase en clouleur2 si le choix 2 est selectionné .
Merci Guy[/code]

Posté : 25 juin 2005, 19:55
par Cyrano
oui, : ajoute un attribut id à ta balise select.: exemple:
<form action="test.php" method="post">
  <select class="couleurbase" style="background-color: #ccccff" onchange="this.style.backgroundColor='#ccffcc'">
    <option value="couleur1">1</option>
    <option value="couleur2">2</option>
    <option value="couleur3">3</option>
    <option value="couleur4">4</option>
    <option value="couleur4">4</option>
  </select>
</form>
Note que pour tester, j'ai intégré le style de couleur directement dans la balise, mais ça devrait fonctionner aussi bien si le style est dans une feuille externe.

Posté : 26 juin 2005, 09:58
par guy
on y est presque mais je calle un fois de plus:j'ai essayé le code si dessous pour recuperer la value de chaque option dans le onchange mais manifestement ca marche pas
<select  name="fields_color"  onchange="this.style.backgroundColor='this.value'">
<option selected style="background-color: 33FFFF" value="33FFFF">a</option>
<option style="background-color: 00FFFF" value="00FFFF">b</option>
<option style="background-color: 3300FF" value="3300FF">c</option>
<option style="background-color: 3333FF" value="3333FF">d</option>
<option style="background-color: 3366FF" value="3366FF">e</option>
<option style="background-color: 3399FF" value="3399FF">f</option>
<option style="background-color: 33CCFF" value="33CCFF">g</option>
merci
Guy

Posté : 26 juin 2005, 10:10
par Cyrano
Ok, je vois, mais je ne suis pas certain que ce soit bon: le style de couleur concerne la balise <select> pas les <option> individuelles.

Ceci dit, je n'affirmerai rien de façon péremptoire, il me semble que j'ai vu un truc dans ce genre il y a quelques mois, il faudrait que je fasse une recherche Google , Il faudrait aussi vérifier la doc CSS. En principe, la propriété background-color concerne tous les éléments, mais c'est au niveau de la structure particulière de l'ensemble <select><option> que ça se passe. :-k

Posté : 26 juin 2005, 10:15
par Cyrano
Par contre il y a une erreur dans la balise <select>: tu traites la valeur this.value comme une chaine de caractère au lieu de récupérer la valeur sélectionnée: modifie comme suit:
<select  name="fields_color"  onchange="this.style.backgroundColor=this.value">