IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Couleurs des Select/Options


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 265
    Par défaut Couleurs des Select/Options
    Bonjour,

    Avant toute chose je dois avouer que je suis novice en JQuery. Donc excusez ma question si elle semble triviale.

    Je suis en train de faire des tests pour changer la couleur de fond d'un "select" après avoir sélectionné une option d'une autre couleur.

    Dans le code suivant j'ai la couleur de fond de select initialisé à "Bleu-clair". SI je sélectionne "Rouge" (par exemple) je voudrais que cette couleur devienne le défaut. Je ne sais pas faire ceci.

    Toutefois il faut récupérer les informations de l'option que j'ai sélectionnée. Pour ce qui est de la valeur et du texte cela marche bien, mais le rgb est faux. Comment puis-je faire pour récupérer la valeur rgb(255,0,0) lorsque je sélectionne "Rouge".



    Merci d'avance.

    Gégé

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <html><head>
    <meta http-equiv="Content-type" content="text/html; charset=Windows-1252"/> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
    </script></head><body>
    <center><p><h1>Test JQUERY 
    <h2>
    <form><select id='S1' style='background-color:#25F0FF;'>
    <option value='0' style='background-color:#25F0FF;'  >bleu clair</option> 
    <option value='1' style='background-color:#0000FF;'  >bleu</option> 
    <option value='2' style='background-color:#FF0000;'   >rouge</option> 
    <option value='3' style='background-color:#00FF00;'   >Vert</option> 
    <option value='4' style='background-color:#000000;'   >Noir</option> 
    </select>
    </body></html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(document).ready(function(){
        $("#S1").mouseup(function(){
             var txt = $("#S1 option:selected").text();
    	 var val = $("#S1 option:selected").val();
    	 var rgb = $("#S1 option:selected").css('backgroundColor');
    	 alert("Texte=" + txt + "  Valeur=" + val + " --> " + rgb);
        });
    });

  2. #2
    Membre très actif
    Avatar de la.lune
    Homme Profil pro
    Directeur Technique
    Inscrit en
    Décembre 2010
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Directeur Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 548
    Par défaut
    Ceci fera l'affaire si j'ai compris ce que tu veux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $(function() {
        $("#S1").change(function (){
            var couleurSelectRGB=$("#S1 :selected").css("backgroundColor");
            $(this).css("background-color",couleurSelectRGB);
        });
    });
    NB: pour la récupération de la couleur au format rgb c'est avec le "backgroundColor" et pour la propriété css "background-color"

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Désolé La.lune mais ton code ne fonctionne pas correctement, en tout cas pas de façon cross browser.

    Il semble en effet que Jquery ait du mal avec le background-color (ou backgroundColor) des options.
    le premier étant la propriété css, le second la propriété de style du DOM en JavaScript.
    JQuery accepte les deux syntaxes.

    Pour une raison qui m'échappe Jquery n'arrive pas à récupérer directement le css background-color (ou backgroundColor) du :selected sous firefox
    apparemment le souci ne se pose pas sous chrome ...

    Mais on peut contourner le problème en passant par le un data de l'option

    sur le load on récupère le rgb de chaque option que l'on stockez dan un data_rgb
    http://jsfiddle.net/Kw8z9/2



    Si quelqu'un a une idée de pourquoi il ne sait pas récupérer le css du :selected sur le change ...
    http://jsfiddle.net/Kw8z9/5
    il choppe bien le data-rgb mais pas la couleur du background ... cf la console...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre très actif
    Avatar de la.lune
    Homme Profil pro
    Directeur Technique
    Inscrit en
    Décembre 2010
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Directeur Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 548
    Par défaut
    Ah merci pour la précision, mais moi j'ai testé sur chrome et ça marche très bien donc, je me suis pas posé la question si au moins ça marche sur autre navigateur dans le moment où JQuery essayer d'être cross plateforme le plus possible même si ce n'est pas tous les cas.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    C'est en effet l'une des rares fois que je prends JQuery en defaut sur un comportement crossbrowser, mais au vu de la gestion des options par les différents navigateurs, cela m'étonne à peine.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il me semble que les balises <option> ne peuvent pas avoir de styles dans certains navigateurs...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Des images dans les <option> des <select>
    Par etoileweb dans le forum Symfony
    Réponses: 4
    Dernier message: 08/02/2011, 16h25
  2. Couleurs des éléments SELECT après submit
    Par zorbo dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 29/09/2010, 08h27
  3. Options de couleur des Scrollbars
    Par nibroc dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 17/08/2009, 23h56
  4. inserer des images a l'interieur d'un select/option
    Par mystro7200 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/06/2009, 18h05
  5. inserer des images a l'interieur d'un select/option
    Par mystro7200 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 02/06/2009, 09h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo