Checkbox a conditions...

Résolu
jpv424 Messages postés 47 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 24 mars 2012 - 27 avril 2008 à 11:59
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 27 avril 2008 à 17:10
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

jpv424 Messages postés 47 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 24 mars 2012
27 avril 2008 à 16:36
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 !!!!
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 12:06
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 !!!
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 avril 2008 à 13:42
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]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 13:45
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 !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jpv424 Messages postés 47 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 24 mars 2012
27 avril 2008 à 14:05
Voila ce qui faut faire ! http://sierragolf3.free.fr/check.html

Merci
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 avril 2008 à 14:06
>>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]
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 avril 2008 à 14:09
>>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]
0
jpv424 Messages postés 47 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 24 mars 2012
27 avril 2008 à 15:27
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!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 15:34
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 !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 15:41
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 !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 16:28
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 !!!
0
jpv424 Messages postés 47 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 24 mars 2012
27 avril 2008 à 16:32
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 ^^
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 16:40
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 !!!
0
jpv424 Messages postés 47 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 24 mars 2012
27 avril 2008 à 16:52
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.
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 17:10
tu as testé sous quoi ?
Chez moi sous IE7 ça marche !!

Si t'a besoin d'aide, MP !!!
0
Rejoignez-nous