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 :

Apparition d'1 champ selon valeur de select


Sujet :

JavaScript

  1. #1
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut Apparition d'1 champ selon valeur de select
    Bonjour à tous!

    J'ai une petite question:

    j'aimerais concevoir un formulaire de contact, dans lequel, pour le "SUJET", je mets une liste d'option, avec différents choix, genre "Question technique", "Question commerciale",...

    Étant donné qu'on ne saurait couvrir toutes les possibilités, je mets aussi à disposition un choix "Autre".

    Ce que j'aimerais, c'est que lorsque l'user choisit "Autre", un champ text apparait, dans lequel il mets plus en détails la raison de son contact.

    Je sais qu'il est possible de coupler du javascript avec la liste à options, mais est-ce possible de coupler du javascript avec seulement une valeur de ma liste??


    Merci pour vos éclaircissements! ;-)
    Sans extrait de code, ne vous attendez à aucun miracle (sauf miracle) ...

    ...et n'oubliez pas: RTFM!!

    Téléchargez FireBug pour Firefox (le paracétamol du développement web)

    "MERCI" ne coûte rien, n'hésitez pas à vous en servir!

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    déjà répondu de nombreuses fois : cf. la FAQ ou les contributions, merci ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    OK désolé, j'ai du passer à côté...

    J'ai trouvé un truc intéressant, mais j'ai un souci lors de la mise en oeuvre...

    En gros, lorsque "menu2" est sélectionné, ça devrait afficher "div1", et ensuite cacher "div1" si jamais l'user change d'option.

    Le tout sans reload évidemment.

    Mais ça ne marche pas (évidemment ^^)... Une bonne âme pour me dire ce qui cloche?

    Voici le code intégral.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <!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=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    #div1{
    display:none;
    }
    </style>
    <script type="text/javascript">
    function cache(idDiv) {
    var div = document.getElementById(idDiv);
    div.style.display = "none";
    }
     
    function affiche(idDiv){
    var div = document.getElementById(idDiv);
    div.style.display = "";
    }
     
     
    function show(idDiv){
    if (document.choix.liste.options[1].selected = true){
    	affiche(idDiv);
    	}
    	else{
    	cache(idDiv);
    	}
    }
     
     
    </script>
    </head>
    <body>
    <form name="choix">
      <select name="liste" onChange="show('div1');">
        <option value="menu1">menu1</option>
        <option value="menu2">menu2</option>
      </select>
    </form>
    <div id="div1"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin eros risus,
      porttitor sed, malesuada quis, dictum non, lorem. Vestibulum sed tortor.
      Aenean vitae turpis. Cras fringilla scelerisque orci. Morbi pretium
      condimentum risus. Sed elementum lacinia urna. Proin sed pede ut felis
      ultrices tincidunt. Aliquam erat volutpat. Morbi convallis odio nec ante.
      Donec turpis. Nunc sit amet turpis eget nibh adipiscing aliquam. </div>
    </body>
    </html>
    Merci d'avance!
    Sans extrait de code, ne vous attendez à aucun miracle (sauf miracle) ...

    ...et n'oubliez pas: RTFM!!

    Téléchargez FireBug pour Firefox (le paracétamol du développement web)

    "MERCI" ne coûte rien, n'hésitez pas à vous en servir!

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    div.style.display = "";
    La syntaxe correcte est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    div.style.display = "block";
    (sauf peut-être pour IE 7, apparament) ...

    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.choix.liste.options[1].selected = true){
    ton menu1 correspond à l'option [0] et non [1]
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    Citation Envoyé par E.Bzz
    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.choix.liste.options[1].selected = true){
    ton menu1 correspond à l'option [0] et non [1]
    C'est lorsque l'user choisit mon option2 (donc [1]) que la DIV doit s'afficher, mais peu importe, sur le principe on est d'accord.

    Sinon ça marche avec "block" en display, ma DIV s'affiche bien, mais par contre, lorsque je sélectionne l'option[1] (celle qui fait s'afficher ma DIV) puis que je change:
    • ma DIV ne disparait pas...
    • et l'option[1] se "resélectionne" automatiquement, je n'arrive pas à changer mon choix...




    Autant le coup du display=""; mea culpa, autant là... Je ne vois pas...

    Une idée?
    Sans extrait de code, ne vous attendez à aucun miracle (sauf miracle) ...

    ...et n'oubliez pas: RTFM!!

    Téléchargez FireBug pour Firefox (le paracétamol du développement web)

    "MERCI" ne coûte rien, n'hésitez pas à vous en servir!

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>...</title>
     
     
    <style type="text/css">
     
    #cach {
    display:none;
    }
     
    </style>
     
    <script type="text/javascript">
     
    function plus(op){
    	document.getElementById("cach").style.display= op=="menu2" ? "block" : "none"
    }
     
    </script>
    </head>
    <body>
     
    <form id="f" action="">
    	<div>
    		<select name="s" onchange="plus(this.value)">
    			<option value="menu1">menu 1</option>
    			<option value="menu2">menu 2</option>
    		</select>
    	</div>
    </form>
     
    <div id="cach">truc bidule chose</div>
     
    </body>
    </html>

  7. #7
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    Génial!!

    Par contre, j'avais jamais vu ce type de syntaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    op=="menu2" ? "block" : "none"
    Quelqu'un pour m'expliquer?

    En tous cas, merci!
    Sans extrait de code, ne vous attendez à aucun miracle (sauf miracle) ...

    ...et n'oubliez pas: RTFM!!

    Téléchargez FireBug pour Firefox (le paracétamol du développement web)

    "MERCI" ne coûte rien, n'hésitez pas à vous en servir!

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Ca equivaut à :
    Si (op == "menu2")
    Alors
    "block"
    Sinon
    "none"

    En gros, on verifie quelle valeur du select est cliquée...

    ++

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par BnA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    op=="menu2" ? "block" : "none"
    Quelqu'un pour m'expliquer?
    Un "if then else" condensé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x=(condition)?si_true:si_false;
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    Ok, me disait bien que c'était une sorte de "if" simplifié...

    Merci beaucoup à tous pour vos contributions!




    /me adore ce forum!
    Sans extrait de code, ne vous attendez à aucun miracle (sauf miracle) ...

    ...et n'oubliez pas: RTFM!!

    Téléchargez FireBug pour Firefox (le paracétamol du développement web)

    "MERCI" ne coûte rien, n'hésitez pas à vous en servir!

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

Discussions similaires

  1. [AC-2007] Remplissage de plusieur champs selon valeur.
    Par adelion dans le forum Access
    Réponses: 2
    Dernier message: 26/04/2015, 14h43
  2. Afficher champ selon valeur sélectionnée
    Par totot dans le forum jQuery
    Réponses: 3
    Dernier message: 18/02/2014, 14h08
  3. Cacher un champ selon la valeur d'un autre champ
    Par pascale86 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/02/2007, 15h54
  4. interdire une selection dans une liste selon valeur
    Par polianita dans le forum Access
    Réponses: 3
    Dernier message: 08/09/2006, 17h19
  5. Réponses: 17
    Dernier message: 06/09/2006, 15h23

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