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 :

[POO] Définir le nombre max de case d'un checkbox à cocher


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Par défaut [POO] Définir le nombre max de case d'un checkbox à cocher
    Hello tout le monde!

    Et bien je cherche un moyen simple de pouvoir définir le nombre max de checkbox que l'on a le droit de cocher.

    Exemple:

    Indiquer vos deux principale qualités:

    - beau
    - fort
    - petit
    - grand
    - blond

    L'idée est que l'utilisateur puisse choisir entre ces 5 propositions, mais ne puisse en cocher que 2...

    La valeur du nombre possible de réponse est stocker dans ma bd ainsi qu'une autre information qui défini si l'utilsateur doit répondre - au moins, juste ou plus que - 2 réponse.

    Suis-je obliger de passer par du javascript?
    Est-ce que quelqu'un a une solution à proposer pour répondre à ce problème please!

    Merci d'avance!

  2. #2
    Membre éclairé Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Par défaut
    salut

    moi je ne vois de solution qu'au niveau js:
    tu fais une boucle sur les 5
    tu testes si les checbox sont cochées
    et ton nb total de cochées est inf ou égal à 2 alors c'est ok sinon il te redonne la main pour n'en choisir que 2

    j'ai un script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	for (i=0; i<=4; i++) {
    		if ((document.getElementById("genre"+stritem[i]).checked) == false) {  // tant que les cases ne sont pas cochées, on continue
    //			alert("non");
    		}
    		else { 
    //			alert("oui");
    //		alert(stritem[i]);
    		}
    qui ne fait pas la même chose, mais dont le principe est très proche...
    @ toi de l'adapter
    @+

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Par défaut
    Ton test sur les cases à cocher veux tu le faire après avoir validé les choix ou le test a lieu a chaque fois que tu coche un case c'est-à-dire que lorsque l'utilisateur coche une troisieme case il est prévenu qu'il ne peut pas?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Par défaut
    Citation Envoyé par Sancho_54
    Ton test sur les cases à cocher veux tu le faire après avoir validé les choix ou le test a lieu a chaque fois que tu coche un case c'est-à-dire que lorsque l'utilisateur coche une troisieme case il est prévenu qu'il ne peut pas?
    Je préfère le faire le plus vite possible, donc quand le client coche la 3 eme case... Donc si je comprends bien le seul moyen c'est JS?

    Et moi qui n'en ai jamais fait...
    bon ca doit pas être la mer à boire...

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Oui, Javascript est le seul moyen.

    Tiens, voilà de quoi te satisfaire :

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function verifChk(id){
       nbchk = document.getElementById('divchk').getElementsByTagName('input').length;
       var i;
       var nbcochee = 0;
       for(i=1;i<=nbchk;i++){
          if(document.getElementById('chk'+i).checked==true){
             nbcochee++;
             if(nbcochee>2){
                alert('Vous ne pouvez pas en choisir plus de deux.');
                document.getElementById(id).checked = false;
             }
          }
       }
    }

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="divchk">
       1:<input type="checkbox" id="chk1" name="chk1" onclick="verifChk('chk1')" />
       2:<input type="checkbox" id="chk2" name="chk2" onclick="verifChk('chk2')" />
       3:<input type="checkbox" id="chk3" name="chk3" onclick="verifChk('chk3')" />
    </div>

    Mais tu as intérêt à établir des règles, parce qu'admettons je ne choisis que deux cases : petit et grand ...

    Ou alors utilise des boutons radio.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Par défaut
    Citation Envoyé par Bisûnûrs
    Oui, Javascript est le seul moyen.

    Tiens, voilà de quoi te satisfaire :

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function verifChk(id){
       nbchk = document.getElementById('divchk').getElementsByTagName('input').length;
       var i;
       var nbcochee = 0;
       for(i=1;i<=nbchk;i++){
          if(document.getElementById('chk'+i).checked==true){
             nbcochee++;
             if(nbcochee>2){
                alert('Vous ne pouvez pas en choisir plus de deux.');
                document.getElementById(id).checked = false;
             }
          }
       }
    }

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="divchk">
       1:<input type="checkbox" id="chk1" name="chk1" onclick="verifChk('chk1')" />
       2:<input type="checkbox" id="chk2" name="chk2" onclick="verifChk('chk2')" />
       3:<input type="checkbox" id="chk3" name="chk3" onclick="verifChk('chk3')" />
    </div>

    Mais tu as intérêt à établir des règles, parce qu'admettons je ne choisis que deux cases : petit et grand ...

    Ou alors utilise des boutons radio.
    merci beaucoup, c'est fort gentil!!!

    Par contre qu'entends tu par des règles, je vois poo ce que tu veux dire.

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

Discussions similaires

  1. Définir le nombre de caractères max d'un JTextField
    Par mitje dans le forum Composants
    Réponses: 4
    Dernier message: 20/01/2006, 16h48
  2. Nombre max de connexions autorisées
    Par omillien dans le forum Oracle
    Réponses: 4
    Dernier message: 04/01/2006, 16h28
  3. Réponses: 3
    Dernier message: 24/10/2005, 16h59
  4. Nombre max de connections MySQL ?
    Par RorolePro dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/11/2004, 14h16
  5. [Ada 95] Définir le nombre d'espaces
    Par cyph3r dans le forum Ada
    Réponses: 1
    Dernier message: 11/11/2004, 11h20

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