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 :

Afficher/ne pas afficher partie de formulaire


Sujet :

JavaScript

Vue hybride

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 31
    Par défaut Afficher/ne pas afficher partie de formulaire
    Bonjour à tous,

    dans un formulaire html, j'ai un élément de type checkbox.
    Si (et seulement si) cette case est cochée, je veux afficher d'autres champs. Sinon je ne veux pas qu'ils apparaissent.

    Je ne connais pas le javascript. Il y aurait-il moyen avec un code assez simple de réaliser cela ?

    Merci

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    En cas de clic sur la checkbox, tu lis l'état (coché ou pas, checked==true/false) et ensuite tu appliques le style "display:none" ou "display:block" aux éléments que tu souhaites masquer/afficher.

    ERE

  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
    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 averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 31
    Par défaut
    J'y connais rien en Javascript, alors j'ai regardé à droite à gauche avec vos indications.
    Ci dessous mes 2 bouts de codes: ma partie Js et ma partie html.
    Je compte intégrer le js dans mon html. Si j'ai bien compris, on met le code js dans le <head> et dans le body on appelle seulement la fonction.
    L'idée est d'avoir au chargement de la page la checkbox principale (bennes) affichée et non cochée. Et si la box est cochée par un clic, afficher la box "benne1".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <script type="text/javascript">
    			function afficher()
    			{
    				var objet = document.getElementById(benne1);
    				if(window.document.bennes.bennes.checked=true)
    				{document.getElementById(benne1).style.display = "block";}
    			else
    				{document.getElementById(benne1).style.display = "none";}
    			}
    		</script>
    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
     
    <html>
    	<head>
    	</head>
    	<body>		
    		<form method="get" action="xxxxx" name="bennes">
    		<table>
    			<tr>
    				<td>Benne(s) pleine(s) : 
    				</td>
    				<td>
    					<input type="checkbox" value="unchecked" name="bennes">
    				</td>
    			</tr>
     
    			<tr id="benne1">
    				<td>
    				</td>
    				<td>Benne 1
    				</td>
    				<td>
    					<input type="checkbox" value="unchecked" name="benne1">
    				</td>
    			</tr>
    		</table>
    	</form>
    	</body>
    </html>
    Merci de votre aide, car j'ai d'autres choses en cours d'apprentissage et j'ai pas envie d'apprendre le js.

  5. #5
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut Buvons un coup ma serpette est perdue ♫
    Bonjour,

    Si vous ne voulez pas que benne1 soit affiché, alors cachez-le dès sa création:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" value="unchecked" name="benne1" style="display:none">
    Ensuite, il y a des petites erreurs de syntaxe. D'abord, vous récupérez un objet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var objet = document.getElementById(benne1);
    Première erreur, l'avoir appelé "objet". C'est peut-être un mot réservé (object est réservé en tout cas). Deuxième erreur, c'est que getElementById, comme son nom l'indique, cherche l'objet selon un id et l'argument est une chaine de caractères:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var mon_objet = document.getElementById("benne1");
    Ca fonctionnera sous IE mais normalement vous devez avoir un id sur votre checkbox.
    Dans votre code, vous récupérez cet objet mais vous ne vous en servez jamais, vous le rerécupérez à chaque fois. :-/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function afficher()
    {
        var mon_objet = document.getElementById("benne1");
        if(window.document.bennes.bennes.checked=true)
        {
              mon_objet.style.display = "block";
         }
         else
        {
             mon_objet.style.display = "none";
         }
    }
    Mais ce n'est toujours pas correct. Dans votre if, vous faites une assignation au lieu de faire une comparaison, et puis autant récupérer l'objet de la même manière (mais mettez leurs des id):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(document.getElementById("bennes").checked==true)

  6. #6
    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
    et id != name
    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 !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 31
    Par défaut
    Merci ça fonctionne

    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
    <html>
    	<head>
     
    		<script type="text/javascript">
    			function afficher()
    {
        var mon_objet = document.getElementById("benne1");
        if(document.getElementById("bennes").checked==true)
        {
              mon_objet.style.display = "block";
         }
         else
        {
             mon_objet.style.display = "none";
         }
    }
     
    		</script>
    	</head>
    	<body>		
    		<form method="get" action="xxxxx">
    		<table>
    			<tr>
    				<td>Benne(s) pleine(s) : 
    				</td>
    				<td>
    					<input type="checkbox" value="unchecked" id="bennes" onCLick="afficher()">
    				</td>
    			</tr>
     
    			<tr id="benne1" style="display:none">
    				<td>
    				</td>
    				<td>Benne 1
    				</td>
    				<td>
    					<input type="checkbox" value="unchecked">
    				</td>
    			</tr>
    </table>
    	</form>
    	</body>
    </html>

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

Discussions similaires

  1. Afficher, ou pas, une partie d'un tableau
    Par Bugger24 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/09/2010, 12h42
  2. Réponses: 2
    Dernier message: 08/10/2008, 15h29
  3. Réponses: 0
    Dernier message: 17/07/2008, 11h24
  4. afficher ou cacher des parties de formulaire
    Par DonKnacki dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 21/11/2007, 20h43
  5. Réponses: 11
    Dernier message: 09/12/2004, 15h03

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