Checkbox a conditions... [Résolu]

Signaler
Messages postés
47
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 mars 2012
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Bonjour à tous et merci pour votre aide !

J'ai un petit formulaire avec checkbox et le code vaut mieux qu'une explication :

        <script language="javascript">
            function verif(){
             
                if(document.forms.add.pc_sp.checked){
                    document.forms.add.pc_m.checked;
                    document.forms.add.pc_c.checked;
                    document.forms.add.pc_p.checked;
                    document.forms.add.pc_e.checked;
                    document.forms.add.pc_t.checked;
                }
           
                if(document.forms.add.pc_m.checked || document.forms.add.pc_c.checked || document.forms.add.pc_p.checked || document.forms.add.pc_e.checked || document.forms.add.pc_t.checked)
                    document.forms.add.pc_sp.checked = 0;
            }
        </script>

En gros voila ce que je veux faire...

Je vous poste quand même un exemple d'input :

Le problème c'est qu'avec ce code, quand je clique sur toutes les cases sauf pc_sp sa va. Quand je clique sur pc_sp, toutes les cases sauf pc_sp s'éteigne. Jusque la normal.

Le problème : Je veut que pc_sp éteigne toute les cases. Et la sa marche pas.

Merci

15 réponses

Messages postés
47
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 mars 2012

Oh ! J'ai trouvé...

Comment pas se faire chier ^^

2 fonctions :

<script language="javascript">
    function verif(){
          if(document.forms.add.pc_sp.checked == true){
               document.forms.add.pc_m.checked = false;
               document.forms.add.pc_c.checked = false;
               document.forms.add.pc_p.checked = false;
               document.forms.add.pc_e.checked = false;
               document.forms.add.pc_t.checked = false;
          }
    }
   
    function sp(){        if(document.forms.add.pc_m.checked true || document.forms.add.pc_c.checked true || document.forms.add.pc_p.checked == true || document.forms.add.pc_e.checked == true || document.forms.add.pc_t.checked == true)
            document.forms.add.pc_sp.checked = false;
    }
</script>

sur toute les case sauf pc_sp ou on met

Merci à tous pour votre aide !!!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Salut,

>>Le problème c'est qu'avec ce code, quand je clique sur toutes les cases sauf pc_sp sa va. Quand je clique sur pc_sp, toutes les cases sauf pc_sp s'éteigne. Jusque la normal.
      Que veus tu dire par éteindre, tu veus dire déselectionné ? ou déchecké ? si tu préfère !

>>Le problème : Je veut que pc_sp éteigne toute les cases. Et la sa marche pas.
      Tu viens de dire plus haut que quand tu cliquais sur pc_sp toute les cases sauf pc_sp s'éteignait ou est le pb ?

Si t'a besoin d'aide, MP !!!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
    si on avait le html.... ça nous éviterait de le refaire....
    je mis perd dans tes name...
    document.forms.add...   curieux...
    document.forms.add.pc_sp.checked = 0;   bizarre.... true ou false non ?
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Bultez++


C'est ce que je t'es mis dans mon dernier mp !!!


@bultez : je crois que j'ai lu quelque part que pour un boolen on peut remplacer false par 0 et true par 1 et tout nombre supérieur a 0 !!!


a++



Si t'a besoin d'aide, MP !!!
Messages postés
47
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 mars 2012

Voila ce qui faut faire ! http://sierragolf3.free.fr/check.html

Merci
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>pour un boolen on peut remplacer false par 0 et true par 1 et tout nombre supérieur a 0 !!!
    j'ai déjà tester ça dans d'autres langages effectivement , jamais en javascript,
           mais pour s'amuser et faire des trucs "bizarres".... c'est tout !
    il est vrai que compte tenu du reste, c'est un détail.....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>http://sierragolf3.free.fr....
    et ben alors... demande l'autorisation et si tu l'obtiens,
       copie/colle ce qu'ils font....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
47
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 mars 2012

Mais lol quoi c'est MON ftp avec un exemple fait en deux deux pour vous ! L'exemple ne marche pas ! Et je ne vois pas l'erreur!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Re, je suis allé jeter un coup d'oeuil et j'ai testé en local comme me l'a conseillé bultez et dans un premier temps, je pense qu'il faudrai :

- mettre le script entre les balises head
- ne pas mettre l'atribut onchange sur les checkbox mais l'attribut onclick (testé, ça marche !!!)
- ensuite, si tu coche ta checkbox qui dois deselectionner toute les autres si tu clique sur les autres elles ne réagirons pas, il faudra la décocher dabord !!!

Enfin voici le code :

<!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" lang="fr">
    <head>
        <title>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script type="text/javascript">
  function verif(){
  
  if(document.forms.add.pc_sp.checked == true){
   document.forms.add.pc_m.checked = false;
   document.forms.add.pc_c.checked = false;
   document.forms.add.pc_p.checked = false;
   document.forms.add.pc_e.checked = false;
   document.forms.add.pc_t.checked = false;
  }
     if(document.forms.add.pc_m.checked true || document.forms.add.pc_c.checked true || document.forms.add.pc_p.checked == true || document.forms.add.pc_e.checked == true || document.forms.add.pc_t.checked == true)
   document.forms.add.pc_sp.checked = false;
  }
  </script>
 </head>
   
 <form action="check.html" method="post" id="add">
  ----

    pc_sp
     
      Cette case doit pouvoir décocher toute les autre   ,
    pc_p
     
      Décoche pc_sp,
 
  ----

    pc_m
     
      Décoche pc_sp  ,
    pc_e
     
      Décoche pc_sp,
 
  ----

    pc_c
     
      Décoche pc_sp,
    pc_t
     
      Décoche pc_sp,
 

</form>
 
</html>

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
j'ai trouvé la solution pour décocher la case une fois qu'elle a décoché toute les autre :

  function verif(){
  
  if(document.forms.add.pc_sp.checked == true){
   document.forms.add.pc_m.checked = false;
   document.forms.add.pc_c.checked = false;
   document.forms.add.pc_p.checked = false;
   document.forms.add.pc_e.checked = false;
   document.forms.add.pc_t.checked = false;
   document.forms.add.pc_sp.checked = false;
  }
     if(document.forms.add.pc_m.checked true || document.forms.add.pc_c.checked true || document.forms.add.pc_p.checked == true || document.forms.add.pc_e.checked == true || document.forms.add.pc_t.checked == true)
   document.forms.add.pc_sp.checked = false;
  }
  </script>

a++ et bonne fin de journée !!!

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
euh, en fait je ne suis pas sur mais je crois que tu peus virer la deuxième condition !!!

++

Si t'a besoin d'aide, MP !!!
Messages postés
47
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 mars 2012

En fait la 2ème :
  if(document.forms.add.pc_m.checked true || document.forms.add.pc_c.checked true || document.forms.add.pc_p.checked == true || document.forms.add.pc_e.checked == true || document.forms.add.pc_t.checked == true)
   document.forms.add.pc_sp.checked = false;

Elle sert à dire si pc_m coché ou pc_c coché etc... etc... ALORS décocher pc_sp...

J'aimerai ne pas avoir a déselectionner pc_sp. Faudrait que ca se fasse tout seul en cochant une autre case...
Merci pour le travail déjà fait ^^
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
re, tu as testé le bout de code que je t'es mis, ça fesait exactement la même chose !!

Si t'a besoin d'aide, MP !!!
Messages postés
47
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 mars 2012

J'ai testé j'ai mis dans la balise head j'ai mis les onclick... J'ai tout laissé d'ailleurs, mais sa marché pas... Je c'est pas pourquoi... Les cases ne décocher pas pc_sp...

Mystère... Mais j'ai testé le code.
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
tu as testé sous quoi ?
Chez moi sous IE7 ça marche !!

Si t'a besoin d'aide, MP !!!