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 apparaitre puis disparaitre 1 zone grace aux clique sur case a cocher


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut Faire apparaitre puis disparaitre 1 zone grace aux clique sur case a cocher
    Bonjour,

    Voila j'ai 1 case a cocher qui, lorsque l'on clique dessus fait apparaitre une zone de texte grace a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="apparition("&num&")"
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Script Language="Javascript">
       <!--
       function apparition(num)
       {
              document.getElementById(num).style.display="inline"
         }
       -->
       </script>
    cela marche trés bien

    maintenant j'ai voulu faire en sorte que lorsqu'on reclique sur cette case (on la decoche en fait) la zone texte disparaiise

    j'ai alors mis le code trouvé ds la faq ci-dessous mais ca marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <Script Language="Javascript">
       <!--
       function apparition(num)
       {
        if (document.choix_temps_2.choix_temps[0].checked) 
          document.getElementById(num).style.display="inline"
         else 
    document.getElementById(num).style.display="none"
       }
       -->
       </script>
    si je comprend bien (connais rien en jvscript) si choix_temps(0) cocher alors apparition sinon disparition? ca devrait marcher

    quelqu'un voit ou est mon erreur?
    merci

  2. #2
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    salut

    essayes de voir ce que te retourne document.choix_temps_2.choix_temps[0].checked

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Script Language="Javascript">
       <!--
       function apparition(num)
       {
        alert(document.choix_temps_2.choix_temps[0].checked);
        if (document.choix_temps_2.choix_temps[0].checked) 
          document.getElementById(num).style.display="inline"
         else 
    document.getElementById(num).style.display="none"
       }
       -->
       </script>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    alors si je met juste l'alerte cela me renvoie true
    par contre si je met l'alerte plus mon code qui soit, rien n'apparait et j'ai un msg d'erreur
    "Objet attendu"

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    si je met:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Script Language="Javascript">
       <!--
       function apparition(num)
       {
        alert(document.choix_temps_2.choix_temps[0].checked);
        if (document.choix_temps_2.choix_temps[0].checked) 
          document.getElementById(num).style.display="inline"
        }
       -->
       </script>
    ca marche trés bien aussi
    j'ai l'alerte qui m'affiche true puis ma zone de texte qui apparait
    donc a priori cela vient de la partie du code qui suit le prob
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else 
    document.getElementById(num).style.display="none"
    est-ce bien .display="none" la syntaxe?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    Bon, j'ai beau me creuser la tête, j'ai du mal a comprendre pourquoi mon bout de code ci-dessous ne marche pas!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <Script Language="Javascript">
       <!--
       function apparition(num)
       {
        if (document.choix_temps_2.choix_temps[0].checked) 
          document.getElementById(num).style.display="inline"
         else 
    document.getElementById(num).style.display="none"
       }
       -->
       </script>
    j'ai bien initialisé ma zone de texte qui doit être affichée au cliq comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="& num &" style="display:none"><input type="text" name="Nbre_h_ptt"" size="2"" maxlength="2"" value=""></div>
    et le clique sur le la case a cocher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=""checkbox"" name=""choix_temps"" value=""Les deux"" onclick=""apparition("&num&")"">
    au clique (coche la case) j'ai bien document.choix_temps_2.choix_temps[0].checked qui renvoie true donc le if doit s'executer
    puis a la decoche j'ai false donc le else devrait s'executer
    Si je met pas le else ca marche mais dés que je met le else ... msg d'erreur

    Pourquoi?
    je patoge grave!!!!!

  6. #6
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Ton problème vient de la syntaxe je pense, essaye de mettre des ; à la fin de tes instructions, c'est plus propre et peut être que ça résoudra ton soucis...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function apparition(num)
       {
        if (document.choix_temps_2.choix_temps[0].checked) 
          document.getElementById(num).style.display="inline";
         else 
    document.getElementById(num).style.display="none";
       }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    merci mais meme avec ca, ca bug
    msg d'erreur "objet attendu"

    tjs pour le else car sans lui ca marche, la zone s'affiche bien
    mon soucis c'estde vouloir l'enlever a la decoche

  8. #8
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Le problème avec ie c'est de comprendre les erreurs...
    Bon mets voir un alert pour vérifié que ton élément est bien trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function apparition(num)
    {
        if (document.choix_temps_2.choix_temps[0].checked) 
           document.getElementById(num).style.display="inline";
         else {
           alert(document.getElementById(num).style.display);
           document.getElementById(num).style.display="none";
         }
    }
    et dis nous ce qu'il te dit stp

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    j'essaye mais il met le msg d'erreur direct sans faire apparaitre la zone texte au cochage
    dés que je lui met le else, ca plante

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    j'ai mis ca (sans le else)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function apparition(num)
       {
       alert(document.choix_temps_2.choix_temps[2].checked);
       alert(document.getElementById(num).style.display);
     if (document.choix_temps_2.choix_temps[2].checked)
       document.getElementById(num).style.display="inline";
       alert(document.getElementById(num).style.display);
    ...
    et j'ai true, none, inline donc c'est good

    mais des que je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else 
      alert(document.getElementById(num).style.display);
    ca bug

  11. #11
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Citation Envoyé par zorba49
    j'essaye mais il met le msg d'erreur direct sans faire apparaitre la zone texte au cochage
    dés que je lui met le else, ca plante
    Bah voilà ça signifie que tu as une erreur dans ton else, au moins on sait où elle se trouve, c'est deja ça!

  12. #12
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    essaye ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function apparition(num)
    {
       alert(document.choix_temps_2.choix_temps[2].checked);
       alert(document.getElementById(num).style.display);
       if (document.choix_temps_2.choix_temps[2].checked){
           document.getElementById(num).style.display="inline";
           alert(document.getElementById(num).style.display);
       }
       else{ 
           alert(document.getElementById(num));
       }

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    j'ai essayé et j'ai eu de suite le msg d'erreur
    même pas les alertes avant le if (?)
    c'est bizarre non?

  14. #14
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    bon mets un alert(num); au début de ta fonction

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    j'ai bien 0 qui s'affiche

  16. #16
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Bon j'ai une question là : pourquoi dans la fonction tu as un coup ça:
    document.choix_temps_2.choix_temps[2].checked
    et un coup ça:
    document.choix_temps_2.choix_temps[0].checked

    Le problème que tu as viens de la récupération de ton élément.

    Peux tu me donner la partie du code avec la case à cocher et l'element à afficher stp?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    bon j'y comprend plus rien!!!
    voila ce que j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (document.choix_temps_2.choix_temps[2].checked)
        alert(document.getElementById(num).style.display);
    else
        alert(document.getElementById(num).style.display);
        alert(document.choix_temps_2.choix_temps[2].checked);
    et j'otient au coche : none ; true
    a la decoche : none ; false

    Pourquoi au coche j'ai 2 valeurs alors que ds if j'ai 1 alert?????

    mais deja le else fonctionne!!!!
    ca bloque des que je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (document.choix_temps_2.choix_temps[2].checked)
        alert(document.getElementById(num).style.display);
    alert(document.choix_temps_2.choix_temps[2].checked);
    else
        alert(document.getElementById(num).style.display);
        alert(document.choix_temps_2.choix_temps[2].checked);

    ca aussi c'est bizarre non?

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 104
    Points
    104
    Par défaut
    en fait j'ai 3 cases a cocher et c'est l'action sur la 3° qui gere l'affichage de la zone de texte et la 3° case a cocher c'est choix_temps[2]
    j'ai aussi 3 zones de texte qui s'affichent et leur id varie avec num
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="& num &" style="display:none"><input type="text" name="Nbre_h_ptt"" size="2"" maxlength="2"" value=""></div>

  19. #19
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Dis moi tu es faché avec les acolades c'est pas possible

    Tu obtiens 2 messages car ta synatxe est mauvaise!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (document.choix_temps_2.choix_temps[2].checked)
        alert(document.getElementById(num).style.display);
    else
        alert(document.getElementById(num).style.display);
        alert(document.choix_temps_2.choix_temps[2].checked);
    ça équivaut à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (document.choix_temps_2.choix_temps[2].checked){
        alert(document.getElementById(num).style.display);
    }
    else{
        alert(document.getElementById(num).style.display);
    }
    alert(document.choix_temps_2.choix_temps[2].checked);
    Tu ne mets pas d'acolade apres un if ou un else SEULEMENT si tu n'a qu'une seule instruction, si tu en as plusieurs alors tu dois les mettres, sinon seule la premiere serra prise en compte.

    Donc ton code doit etre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (document.choix_temps_2.choix_temps[2].checked)
        alert(document.getElementById(num).style.display);
    else{
        alert(document.getElementById(num).style.display);
        alert(document.choix_temps_2.choix_temps[2].checked);
    }
    Note que depuis tout à l'heure je te corrige cette erreur! On a perdu du temps betement...

  20. #20
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Citation Envoyé par zorba49
    en fait j'ai 3 cases a cocher et c'est l'action sur la 3° qui gere l'affichage de la zone de texte et la 3° case a cocher c'est choix_temps[2]
    j'ai aussi 3 zones de texte qui s'affichent et leur id varie avec num
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="& num &" style="display:none"><input type="text" name="Nbre_h_ptt"" size="2"" maxlength="2"" value=""></div>
    Où sont les cases à cocher?

Discussions similaires

  1. Faire apparaitre et disparaitre une fenetre
    Par defcom60 dans le forum GTK+ avec Python
    Réponses: 0
    Dernier message: 16/06/2008, 19h48
  2. Faire apparaitre et disparaitre des lignes de tableaux
    Par mattyeux dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/12/2007, 17h27
  3. faire apparaitre et disparaitre du texte
    Par leien dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 11/07/2007, 10h07
  4. Comment faire apparaitre puis cacher un textre???
    Par Leimi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 02/06/2005, 10h07
  5. faire apparaitre et disparaitre un panel dans une frame
    Par Ghost Dog dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 22/04/2005, 01h55

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