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 :

Décocher une checkbox si une autre est coché


Sujet :

JavaScript

  1. #1
    Membre averti
    Avatar de Sieldev
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 259
    Points : 353
    Points
    353
    Par défaut Décocher une checkbox si une autre est coché
    Salut,

    Tout d'abord je mets ce bout de code qui marche trés bien:

    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
    <script type="text/javascript">
     
    function choix_check (encours, fait)
    {
    	encours = $(encours); // La fonction $ de la librairie scriptaculous permet de recuperer l'id de l'objet et de renvoyer plusieurs propriétés
    	fait = $(fait);
    	if (encours.checked && fait.checked) // Si les deux checkbox sont coché alors
    	{
    	       alert('Une tâche est soit en cours, soit non commencé ou soit terminé. Vous ne pouvez pas cocher les deux cases.');
    		return false; //return false  annule la derniére action, ici elle va permettre de décocher la derniere checkbox coché si les deux checkbox sont coché
    	}
    }
    </script>
     
    //Je vous mets juste les checkbox. Les checkbox font partie d'un tableau
     
    <td align='center'><input ".$chek." type='checkbox' id=\"encours_".$i."[]\" name=\"encours_".$i."[]\" value=".$ssvalue['numsstache']." onclick=\"return choix_check('encours_".$i."[]', 'fait_".$i."[]') \"></td><td align='center'><input type='checkbox' id=\"fait_".$i."[]\" name=\"fait_".$i."[]\" value=".$ssvalue['numsstache']." onclick=\"return choix_check('encours_".$i."[]', 'fait_".$i."[]') \"></td>";
     
    }
    Ici l'utilisateur a le choix entre coché une checkbox ou non, la fonction javascript verifie si il ne coche pas les deux checkbox. Si il coche les deux checkbox alors une alert lui dit qu'il ne peut pas coché les deux checkbox et décoche la derniére case coché.

    Mais en fait il serait plus pratique que si la personne coche la premiére case puis coche la deuxiéme alors on décoche la premiére case. En fait je veux reprendre le même principe que les boutons radio mais avec des checkbox.
    Avez vous une idée de comment je pourrai modifier ma fonction pour arriver à ce résultat?

    Cordialement Sieldev,

    PS: Utiliser des boutons radio serait plus judicieux mais il m'est demandé de faire ça avec des checkbox...

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    encours.onclick = function(){ if (encours.checked) fait.checked = false; };
    fait.onclick = function(){ if (fait.checked) encours.checked = false; };
    peut-être

  3. #3
    Membre averti
    Avatar de Sieldev
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 259
    Points : 353
    Points
    353
    Par défaut
    C'est bon, merci bigboomshakala de m'avoir éclairé. Donc voila j'ai fait ça en deux fonctions:

    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
    <script type="text/javascript">
     
    function choix_check1 (encours, fait)
    {
    	var resultat1;
    	encours = $(encours); // La fonction $ de la librairie scriptaculous permet une recuperer l'id de l'objet et de renvoyer plusieurs propriétés
    	fait = $(fait);
     
    	if(fait.checked)
    	{
    		fait.checked = false;
    		resultat = fait.checked;
    	}
    	return resultat1;
    }
     
     
    function choix_check2 (encours, fait)
    {
    	var resultat2;
    	encours = $(encours); // La fonction $ de la librairie scriptaculous permet une recuperer l'id de l'objet et de renvoyer plusieurs propriétés
    	fait = $(fait);
     
    	if(encours.checked)
    	{
    		encours.checked = false;
    		resultat = encours.checked;
    	}
     
    	return resultat2;
    }
    </script>
    Et bien sur on appel les fonctions adéquates sur chaque checkbox dans le onclick:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td align='center'><input ".$chek." type='checkbox' id=\"encours_".$i."[]\" name=\"encours_".$i."[]\" value=".$ssvalue['numsstache']." onclick=\"return choix_check1('encours_".$i."[]', 'fait_".$i."[]') \">;
     
    <td align='center'><input type='checkbox' id=\"fait_".$i."[]\" name=\"fait_".$i."[]\" value=".$ssvalue['numsstache']." onclick=\"return choix_check2('encours_".$i."[]', 'fait_".$i."[]') \"></td>"

  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    est-ce que ça marche si les checkbox sont checkées en appuyant sur la barre espace ?

  5. #5
    Membre averti
    Avatar de Sieldev
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 259
    Points : 353
    Points
    353
    Par défaut
    Oui c'est bon.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. Réponses: 5
    Dernier message: 07/02/2009, 00h11
  4. afficher une valeur sur une feuille lorsqu'une checkbox est cochée
    Par chrnoe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2008, 14h39
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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