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

JSF Java Discussion :

Affichage d'un champ en fonction du checkbox


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 22
    Par défaut Affichage d'un champ en fonction du checkbox
    Bonjour tout le monde,

    J'aimerai pouvoir afficher un contenu (un champ d'un formulaire) en fonction si le checkbox est cocher ou décocher.
    ci-dessous mon code (qui ne marche pas et je ne sais pas pourquoi: mon bouton checkbox cocher ou décocher n'a aucun effet sur l'affichage ou non de mon champ de formulaire)

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!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"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:f="http://java.sun.com/jsf/core"> 
     
    <h:head>
        <title>Formulaire JSF2.0</title>
        <link rel="stylesheet" type="text/css" href="/style.css"></link>
    </h:head>
    <h:body>
    <h:form>
    <h:selectBooleanCheckbox id="chartDept" title="chartDept" onclick="showCheck()"></h:selectBooleanCheckbox>
    <h:outputText value="By Dept  "/>
    <pre id="deptPie" style="display: none">
        <p:pieChart  value="#{pieBean.pieModelDept}" legendPosition="w" title="Model dept" style="width:500px;height:410px" />
    </pre>
    <script type="text/javascript">
        //<![CDATA[
                 function showCheck() {
                         if (document.getElementById('j_idt6:chartDept').checked) == true) {
                             document.getElementById('deptPie').style.display = "block";
                         }
                         else {
                             document.getElementById('deptPie').style.display = "none";
                         }
                     };
             //]]>   
        </script>
    </h:form>
    </h:body>
    </html>
    Quelqu'un peux me débloquer SVP ?

    Merci par avance

  2. #2
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Par défaut
    Déjà tu as une parenthèse en trop après le mot checked dans ton code JavaScript.

    De plus il n'y a aucun champ dans ta page qui porte l'id deptPie donc rien ne s'affichera !

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 22
    Par défaut
    Citation Envoyé par KpTn Voir le message
    Déjà tu as une parenthèse en trop après le mot checked dans ton code JavaScript.

    De plus il n'y a aucun champ dans ta page qui porte l'id deptPie donc rien ne s'affichera !

    Je n'ai pas bien copier mon code
    editer plus haut

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Par défaut
    Même dans le nouveau code que tu as édité tu as toujours une parenthèse fermante en trop après le mot checked dans ton code JavaScript.

    Ton problème vient sûrement de là.

    Je ne sais pas quel navigateur tu utilises mais tu dois voir une erreur JavaScript se produire et donc empêcher ton code de s'exécuter.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 22
    Par défaut
    Citation Envoyé par KpTn Voir le message
    Même dans le nouveau code que tu as édité tu as toujours une parenthèse fermante en trop après le mot checked dans ton code JavaScript.

    Ton problème vient sûrement de là.

    Je ne sais pas quel navigateur tu utilises mais tu dois voir une erreur JavaScript se produire et donc empêcher ton code de s'exécuter.

    effectivement y avais une parenthèse de plus. Sauf que même si je l'ai enlevé je n'ai aucun changement quand je décoche ou coche le checkbox rien qui se produit.
    J'utilise Firefox 30.0 comme navigateur.

    ci-dessous le code html qui se produit je l'ai récupéré avec Firebug

    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
    <form id="j_idt6" enctype="application/x-www-form-urlencoded" action="/formulaire_jsf/faces/formulaire.xhtml" method="post" name="j_idt6">
    <input type="hidden" value="j_idt6" name="j_idt6">
    <input id="j_idt6:chartDept" type="checkbox" onclick="showCheck()" title="chartDept" name="j_idt6:chartDept">
    By Dept
    <pre id="deptPie" style="display: block;">
    <div id="j_idt6:j_idt13" style="width:500px;height:410px"></div>
    </pre>
    <script type="text/javascript">
    //<![CDATA[
    function showCheck() {
    if (document.getElementById('j_idt6:chartDept').checked == true) {
    document.getElementById('deptPie').style.display = "block";
    }
    else {
    document.getElementById('deptPie').style.display = "none";
    }
    };
    //]]>
    </script>

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 22
    Par défaut
    Merci bien
    c'est vrai que la parenthèse de plus qui était la source du problème

    J'ai du coup initialisé la valeur du checkbox à true et j'ai mis le style diplay initial à block et ça marche maintenant.

    Merci pour votre aide

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

Discussions similaires

  1. Affichage d'un champ en fonction d'un autre
    Par Aaymeric91 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/03/2015, 18h02
  2. Affichage de champs en fonction de la valeur d'une checkbox
    Par clairetj dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 26/05/2014, 13h32
  3. Affichage d'un champ en fonction d'une table
    Par Davik dans le forum VBA Access
    Réponses: 5
    Dernier message: 12/05/2010, 10h33
  4. [DOM] Affichage de champs en fonction de l'âge.
    Par HekThor dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/01/2009, 13h39
  5. Réponses: 4
    Dernier message: 20/04/2007, 11h59

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