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 :

[checkbox] Tout cocher/decocher [Trucs & Astuces]


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 12
    Points : 8
    Points
    8
    Par défaut [checkbox] Tout cocher/decocher
    Bonjour,

    voilà mon pb : j'ai 2 images qui permettent de tout cocher ou tout decocher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="checkbox" name="chk[]" value="<? echo $elem_b; ?>" onClick="changeDossier('<? echo $elem_b; ?>');">
     
    <img src="images/toutcocher.jpg" title="Tout cocher" border="0" onClick="checkAll('chk[]', true);"> | <img src="images/toutdecocher.jpg" title="Tout décocher" border="0" onClick="checkAll('chk[]', false);">
    et donc sur le clic, j'appelle cette fonction javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function checkAll(chk_name, status)
    {
    	chk_list = document.forms['form_choisir'].elements[chk_name];
     
    	for(var i = 0; i < chk_list.length; i++)
    	{
    		chk_list[i].checked = status;
     	}
    }
    en fait tout fonctionne parfaitement quand j'ai au moins 2 cases à cocher, mais lorsque j'en ai qu'une seule, eh bien la case ne se coche pas, et là je comprend pas pourquoi donc si vous avez une idee...

    Merci
    thony23

    modéré par denisC : modification du titre

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    quand tu en as une, est ce que chk_list.length vaut vraiment 1 ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    comment le savoir ??
    j'ai essayé de mettre 1 ou 2 à la place de chk_list.length mais c'est encore pire...

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    1 -> ce n'est plus un Array.
    fais une recherche sur
    typeof

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    deja tu peux commencer par faire un alert de chk_list.length pour verifier, sinon effectivement typeof ou faire un isArray sur chk_list

  6. #6
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Quand tu as une seule checkbox, ta variable chk_list n'est pas une liste de checkbox contenant une seule checkbox, comme ce serait logique, mais une checkbox.

    Il te suffit donc de rajouter quelque chose du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (chk_list.length==1) 
      chk_list.checked = status;
    Avant ta boucle ce qui te permettra de prendre en compte ce cas particulier.

    Tu peux aussi t'amuser avec des typeof ou isArray, mais ça te fera le même résultat

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    j'ai deja essayé ça mais ça ne fonctionne pas !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            if (chk_list.length==1)
    	{
      		chk_list.checked = status; 
      	}
    	else
    	{	
    		for(var i = 0; i < chk_list.length; i++)
    		{
    			chk_list[i].checked = status;
    		}
    	}
    et je ne vois pas comment utiliser la fonction typeof !!! isArray existe en javascript ???

  8. #8
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par thony23
    j'ai deja essayé ça mais ça ne fonctionne pas !!!
    Pardon, c'était débile de ma part....

    Je te dis qu'il n'y a pas de longueur, et je fais un test dessus

    Modifie le test comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!chk_list.length)
    Ca va finir par marcher....

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    merci là ça marche du tonnerre, c'etait pas grand chose mais fallait y penser ;-)

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

Discussions similaires

  1. Checkbox tout cocher
    Par Devilju69 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/07/2009, 11h29
  2. cocher decocher deux checkbox
    Par krikete13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/06/2007, 13h19
  3. Liste de checkbox : cocher/decocher
    Par sebhm dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/12/2006, 18h08
  4. Cocher/Decocher une liste de checkbox
    Par Alain15 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 20/07/2006, 15h40
  5. Cocher/Decocher Checkbox
    Par HmL dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/03/2005, 13h34

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