begin process at 2012 02 13 14:40:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Checkbox maximum 5


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Checkbox maximum 5

jeudi 4 juin 2009 à 11:21:05 | Checkbox maximum 5

fabienfs

Membre Club Administrateur CodeS-SourceS
Bonjour,

J'ai un formulaire contenant une centaine de checkbox nomé comme suit :
<input type="checkbox" name="ckb1" onclick="chkcontrol(1)" value="test" />
<input type="checkbox" name="ckb2" onclick="chkcontrol(1)" value="test" />
<input type="checkbox" name="ckb3" onclick="chkcontrol(1)" value="test" />
<input type="checkbox" name="ckb4" onclick="chkcontrol(1)" value="test" />
...

J'ai une petite fonction JS (chkcontrol) qui me permet que l'utilisateur ne puisse cocher que maximum 3 checkbox, et que si il dépasse ce nombre, une alerte s'affiche.
Seulement cette fonction que j'ai trouvé sur le net ne fonctionne normalement que si le name="" de mes checkbox ont exactement le même nom.

Voici la fonction :

function chkcontrol(j) {
    var total=0;
    for(var i=0; i < document.choixzik.ckb.length; i++){
      if(document.choixzik.ckb[i].checked){
      total =total +1;}
      if(total > 3){
        alert("Tu ne peux séléctionner que 3 checkbox !")
        document.choixzik.ckb[j].checked = false ;
        return false;
      }
    }
  }

Ma question est donc : comment adapter cette fonction pour qu'elle fonctionne avec des checkbox de noms différents (comme montré ci-dessus) ?

D'avance merci pour vos pistes :-)

Bonne journée,
Fabien
jeudi 4 juin 2009 à 11:42:28 | Re : Checkbox maximum 5

Bul3

Membre Club
Réponse acceptée !
bonjour,

>>ne fonctionne normalement que si le name="" de mes
>>checkbox ont exactement le même nom.
ben oui... c'est bien plus simple à gérer
y compris coté serveur !
mais enfin, si tu tiens à tout prix à
te compliquer la vie :

var n=1;
while ( document.name_du_formulaire["ckb"+n] )
{   traitement de document.name_du_formulaire["ckb"+n]
    n++
}
@+
jeudi 4 juin 2009 à 12:00:09 | Re : Checkbox maximum 5

fabienfs

Membre Club Administrateur CodeS-SourceS
merci bul3,

par contre je ne vois pas très bien quoi englober dans ma while.
actuellement j'ai fait ceci :

  function chkcontrol(j) {
    var total=0;
    var n=1;
    while (document.choixzik.ckb[n])
    {
      for(var i=0; i < document.choixzik.ckb.length; i++){
        if(document.choixzik.ckb[i].checked){
        total =total +1;}
        if(total > 3){
          alert("5 heckbox max !")
          document.choixzik.ckb[j].checked = false ;
          return false;
        }
      }
      n++;
    }
  }

mais ce ne doit pas être ca.

tu peux m'éclairer ?

merci.

fab
jeudi 4 juin 2009 à 12:17:46 | Re : Checkbox maximum 5

Bul3

Membre Club
Réponse acceptée !

bah... j'ai pourtant dit, non ?
...   traitement de document.name_du_formulaire["ckb"+n] ...


fonction chkcontrol()
{ var n=1;
  var total=0;
  while ( document.choixzik["ckb"+n] )
  { if ( document.choixzik["ckb"+n].checked )
    { total++;
      if ( total > 5 )
      {  alert("5 checkbox max !");
         return false;  
      }
    }
    n++;
  }
  return true;
}

jeudi 4 juin 2009 à 12:25:21 | Re : Checkbox maximum 5

fabienfs

Membre Club Administrateur CodeS-SourceS
ok je vois,
ca marche impec.
j'ai juste rajouter document.choixzik["ckb"+n].checked = false; car le return false; ne suffit pas à décocher celui qui est en trop.

merci à toi !

bonne journée,

fab
jeudi 4 juin 2009 à 12:30:11 | Re : Checkbox maximum 5

Bul3

Membre Club
bien entendu, "même chose" coté serveur....
alors qu'avec les même name, c'est un array qui est géré
c'est bien plus simple
jeudi 4 juin 2009 à 12:33:32 | Re : Checkbox maximum 5

Bul3

Membre Club
>>ne suffit pas à décocher celui qui est en trop.
certes... mais
_ comme tu sors de la fonction,
  si tu en coches 25, il en restera 19 cochés en trop ;o)
_ tu ne décoche peut-être pas celui qu'il faut
jeudi 4 juin 2009 à 12:35:36 | Re : Checkbox maximum 5

fabienfs

Membre Club Administrateur CodeS-SourceS
effectivement,
mais comment décocher le bon quand il y en plus que 5 déjà cochés après l'affiche du alert ?
jeudi 4 juin 2009 à 12:41:45 | Re : Checkbox maximum 5

Bul3

Membre Club
à priori, je dirais : tu ne peux pas !
comment veux-tu deviner "l'erreur" de l'internaute ?
il peut avoir coché n'importe lesquels en trop.
et comme déjà dis, ça ne pourrait "marchouiller"
que pour 6 checkbox cochés. et pour 25 ?
jeudi 4 juin 2009 à 12:43:41 | Re : Checkbox maximum 5

Bul3

Membre Club
ou alors, il faut contrôler à
chaque click sur un checkbox quelconque.
remarque que c'est peut-être ce que tu fais ?
donc dans ce cas décocher le dernier ? celui cliqué ?

1 2

Cette discussion est classée dans : fonction, checkbox, fonctionne, maximum, chkcontrol


Répondre à ce message

Sujets en rapport avec ce message

checkbox multiple verifier nbre de choix [ par toniom ] slt j'ai des champs checkbox à choix multiples.exemple d'une des balises :j'utilise le nom "Formation[]" car je recupere les donnee checkbox sous firefox [ par rich25200 ] bonsoir,un truc que je ne comprend pas !!! sinon je serais pas la !! lolalors j'ai un checkbox et je veux que lorsque je clique sur le checkbox mon bo Nom d'un objet en parametre [ par Rael87 ] Voila mon probleme, j'envois le nom d'une checkbox en parametre de ma fonction test, le but etant de cocher toute les checkbox ayant ce nom.Voici ma f La fonction SPLIT (string) ne fonctionne pas sur MAC [ par darb66 ] Hello,Je developpe une petite fonctionnalite en utilisant la fonction split(string, char) pour pouvoir formater un texte et l'afficher avec la fonctio Nombre de Checkbox cochée [ par jumano ] Bonjour,J'ai récupéré sur le forum une fonction permettant de calculer le nombre de checkbox cochée dans un formulaire (http://www.javascriptfr.com/in fonction getElementById qui ne fonctionne pas... [ par Also know as ] Bonjour à tous !Voilà j'ai un petit soucis sur un fonction javascript que j'ai créée mais celle-ci ne fonctionne pas sous Internet Explorer et Opera.f pb avec setInterval [ par hlimaiem ] Limaiem heykelJ'ai un probleme avec la fonction var chrono = setInterval("go();",3000);  elle ne fonctionne pas sur firefox???Y a t il une fonction qu Un If ne fonctionne pas [ par francoisch ] Bonjour   <p class="MsoNormal" style="MARGIN: 0cm 0 fonction javascript [ par tipieddu59 ] Bonjour, j'ai un petit problème sur un formulaire d'enregistrement j'ai intégré une textarea dans mon formulaire et je l'ai initialisée sur disabled ( fonction javascript [ par tipieddu59 ] Bonjour, j'ai un petit problème sur un formulaire d'enregistrement j'ai intégré une textarea dans mon formulaire et je l'ai initialisée sur disabled (


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 17,441 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales