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 :

Condition sur checkbox qui ne marche pas


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut Condition sur checkbox qui ne marche pas
    Bonjour,
    dans un formulaire j'ai une liste de checkbox, une div en dessous, j'aimerai que si l'on check une ou plusieurs des checkbox de cette liste, alors la div du dessous s'affiche. Si rien n'est coché elle reste cachée.

    j'ai voulu faire :
    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
    <li id="choix"><label>Choix: </label>
        <ol class="checkboxes">
            <li><input value="choix_1" type="checkbox" onclick="Change" name="choix[]" id="choix_1" />choix 1</li>
    	<li><input value="choix_2" type="checkbox" onclick="Change" name="choix[]" id="choix_2" />choix 2</li>
    	<li><input value="choix_3" type="checkbox" onclick="Change" name="choix[]" id="choix_3" />choix 3</li>
        </ol>
    </li>
    <div id="madiv"  style="visibility:hidden;"><p>blabla</p></div>
     
    <script type="text/javascript">
    function Change() {
        if (document.getElementById('choix_1').checked) || (document.getElementById('choix_2').checked) || (document.getElementById('choix_3').checked)
            document.getElementById('madiv').style.visibility=visible;
        }
        else(){
            document.getElementById('madiv').style.visibility=hidden;
        }
    }
    </script>

    Je ne sais pas si je m'y prends bien ou mal ou même si il n'y a pas déjà des erreurs de syntaxe... si quelqu'un pouvait me filer un coup de main codé ça serait juste merveilleux !!

    Merci !!

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Bonjour,

    Essaie d'utiliser onchange plutôt que onclick (au cas où l'utilisateur utilise le clavier) et rajouter des parenthèses à l'appel de ta fonction Change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input value="choix_1" type="checkbox" onchange="Change()" name="choix[]" id="choix_1" />choix 1
    Par ailleurs, j'ai réécrit ton code en corrigeant quelques soucis potentiels et avec des méthodes un peu plus "modernes". Attention au support cependant : http://codepen.io/anon/pen/tbIrD

    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
     
    <li id="choix"><label>Choix: </label>
        <ol class="checkboxes">
          <li>
            <input value="choix_1" type="checkbox" name="choix[]" id="choix_1" />
            <label for="choix_1">choix 1</label>
          </li>
    	<li>
        <input value="choix_2" type="checkbox" name="choix[]" id="choix_2" />
        <label for="choix_2">choix 2</label>
      </li>
    	<li>
        <input value="choix_3" type="checkbox" name="choix[]" id="choix_3" />
        <label for="choix_3">choix 3</label>
      </li>
      </ol>
    </li>
    <div id="madiv" style="display:none;"><p>blabla</p></div>

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var checkboxes = document.querySelectorAll("#choix .checkboxes input");
    Array.prototype.slice.call(checkboxes).forEach(function(){
    	this.addEventListener("change", function(){
    		var someChecked = Array.prototype.some.call(checkboxes, function(box){ return box.checked; });
    		document.getElementById('madiv').style.display = someChecked ? "block" : "none";
    	});
    });

Discussions similaires

  1. lien PHP avec arret sur image qui ne marche pas
    Par MYBEE DESIGN dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 12/09/2009, 19h17
  2. [MySQL] condition avec requete qui ne marche pas ..sous ie
    Par esti89 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/06/2008, 09h53
  3. Commande ftp sur free qui ne marche pas!
    Par Death83 dans le forum Administration
    Réponses: 1
    Dernier message: 07/11/2006, 18h08
  4. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

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