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

JavaScript Discussion :

Faire changer le style d'un élément avec un select


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Particulier
    Inscrit en
    Janvier 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Particulier

    Informations forums :
    Inscription : Janvier 2013
    Messages : 80
    Par défaut Faire changer le style d'un élément avec un select
    Bonjour.

    Je débute en JavaScript, et je cherche à faire changer le style d'un élément avec l'aide d'un select.
    Voici un exemple :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8" />
    	<link rel="stylesheet" href="styles.css" />
        <title>[JS] Faire changer le style d'un élément</title>
      </head>
     
      <body>
     
      <form name="afficher_image">
    	<select onmouseup="afficher_img()" name="select">
    		<option value="black" selected="selected">Noir</option>
    		<option value="red">Rouge</option>
    	</select>
    	<input type="text" name="checker" />
      </form>
     
      <div id="myDIV">
      Lorem ipsum dolor sit amet. Amo P...
      </div>
     
      <script>
                    function afficher_img()
                    {
                            afficher_image.checker.value = afficher_image.select.value;
                            var affichage = afficher_image.select.value;
                            
                            document.getElementsById("myDIV").style.color = affichage;
                    }
            </script>
     </body>
    </html>

    Sauf que si ça fonctionnait... Je ne serai pas là pour en parler :p !
    Bon Dimanche, et merci !

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    oubli l'événement onmouseup sur le SELECt, préfères lui onchange.

    Quant à ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function afficher_img() {
      afficher_image.checker.value = afficher_image.select.value;
      var affichage = afficher_image.select.value;
     
      document.getElementsById("myDIV").style.color = affichage;
    }
    je te laisse la relire pour voir la multitude de choses qui ne vont pas.


    ...la correction rapide...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function afficher_img() {
    //  afficher_image.checker.value = afficher_image.select.value;
      var affichage = afficher_image.select.value;
    
      document.getElementById("myDIV").style.color = affichage;
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Particulier
    Inscrit en
    Janvier 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Particulier

    Informations forums :
    Inscription : Janvier 2013
    Messages : 80
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <!doctype html>
    <html>
    <!-- [...] -->
      <body>
     
      <form name="afficher_image">
    	<select onchange="afficher_img()" name="select">
    		<option value="0" selected="selected">Noir</option>
    		<option value="1">Rouge</option>
    	</select>
    	<input type="text" name="checker" />
      </form>
     
      <div id="myDIV">
    	Lorem ipsum dolor sit amet. Amo P...
      </div>  
    	<script>
    		function afficher_img()
    		{
    			afficher_image.checker.value = afficher_image.select.value;
    			var affichage = afficher_image.select.value;
     
    			document.getElementById("myDIV").style.color = affichage;
    		}
    	</script>
     </body>
    </html>
    Ca ne marche toujours pas...

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Ca ne marche toujours pas...
    on va dire que c'est un peu normal, tu as modifié les value de tes OPTIONs en leurs mettant des valeurs qui ne sont pas reconnu comme couleur.

    Le point qui reste important à aborder est la façon dont tu récupères les références à tes différents objets, FORM et INPUT.

    Je t'engage à lire Comment accéder aux éléments d'un formulaire ? et par la même la concernant les Formulaires

  5. #5
    Membre confirmé
    Homme Profil pro
    Particulier
    Inscrit en
    Janvier 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Particulier

    Informations forums :
    Inscription : Janvier 2013
    Messages : 80
    Par défaut
    (facepalm)... C'est vrai que vu comme ça... Merci, en tout cas !
    Mais maintenant, j'aimerai faire ça, mais par balise et non plus par id.
    Ce que j'ai fait : http://codepen.io/anon/pen/ilzBs.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    si l'on reprend la fonction que tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function afficher_img()
    {
    	var affichage = document.forms['afficher_image'].elements['select'].value;
    	document.getElementsTagName(div).style.color = affichage;
    }
    on constate beaucoup trop d'erreurs dans celle ci
    - getElementsTagName, cette méthode n'existe pas mais il existe getElementsByTagName
    - la méthode getElementsByTagName retourne une liste d'éléments, il te faut donc boucler sur les éléments retournés
    - le paramètre que tu passes, div, est considéré comme une variable

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

Discussions similaires

  1. [UI Mobile] Changer le style d'un élément d'une liste(listview) au clic
    Par LaurentC33 dans le forum jQuery
    Réponses: 2
    Dernier message: 03/03/2014, 10h27
  2. [Débutant] Changer style d'un élément ?
    Par ghohm dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 22/06/2007, 09h21
  3. changer le style d'un bouton submit avec du javascript
    Par ipeteivince dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/08/2006, 15h44
  4. Changer plusieur style avec des IDs différents?
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2005, 14h33

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