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] V�rifier si checkbox est coch�e


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 124
    Par d�faut [checkbox] V�rifier si checkbox est coch�e
    Bonjour,

    Je tente de savoit si aucune de mes chekbox n'est coch�e. Le nombre de checkbox �tant variable.

    Voil� la syntaxe que j'utilise mais il y a un hic dans mon if, malheureusement, je ne vois pas d'ou �a vient. Si quelqu'un peut m'aider ce sera sympa.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function validation ()
    {
    	var test_nb = 0;
    	for (i = 1; i <= <? echo ($nb_cri); ?>; i++)
    	{
    		if (document.form.enreg.tab_add_cri[i].checked==false)
    		{
    			test_nb++;
    		}
    	}
    	alert ("test=" + test_nb);
    }
    Le nom de mon formulaire est enreg et je nomme mes checkbox comme suit : name="tab_add_cri[0]", name="tab_add_cri[1]" ...

    Puisque le nombre de checkbox n'est pas fixe, $nb_cri correspond au nombre de checkbox.

    Merci d'avance de votre aide.

  2. #2
    Membre chevronn� Avatar de yjuliet
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Ao�t 2006
    Messages
    362
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 362
    Par d�faut
    Salut.

    Juste comme �a, tu expliques que tu nommes tes checkboxes
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    tab_add_cri[0 .. (n-1)]
    et que ta boucle for est �crite
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    for (i = 1; i <= n ; i++) {...}

    Tu ne testes donc jamais la case tab_add[0] mais par contre, tu essayes syst�matiquement d'acc�der � la case tab_add[n] ce qui risque d'entrainer un plantage du script.

    Tu n'as pas r�ellement besoin du param�tre PHP pour r�cup�rer le nombre de cases, puisqu'en JavaScript, tu as la propri�t� length d'un tableau. Tu pourrais donc faire quelquechose comme :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function validation ()
    {
    	var test_nb = 0;
    	for (i = 0; i <= document.form.enreg.tab_add_cri.length ; i++)
    	{
    		if (document.form.enreg.tab_add_cri[i].checked==false)
    		{
    			test_nb++;
    		}
    	}
    	alert ("test=" + test_nb);
    }

  3. #3
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    soit, peut-�tre:
    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
    <form id="f" action="" onsubmit="return verif(this.elements['box[]'])" />
     
    <div>
    <input type="checkbox" name="box[]" value="box0" />truc<br />
    <input type="checkbox" name="box[]" value="box1" />truc<br />
    <input type="checkbox" name="box[]" value="box2" />truc<br />
    <input type="checkbox" name="box[]" value="box3" />truc<br />
    </div>
    <p>
    <input type="submit" />
    </p>
    </form>
     
    <script type="text/javascript">
     
     
    function verif(b){
    	for(i=0;i<b.length;i++){
    		if(b[i].checked==true){
    			return true
    		}
    	}
    	return false
    }
    </script>

  4. #4
    Membre chevronn� Avatar de yjuliet
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Ao�t 2006
    Messages
    362
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 362
    Par d�faut
    � part le que j'aurais eu tendance � passer diff�remment :, mais dont je ne suis pas certain, je pense que �a devrait ressembler � �a ...

  5. #5
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    en fait, comme php re�oit un tableau "box", il est n�cessaire de nommer les checkbox ainsi pour r�cup�rer les donn�es;

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 124
    Par d�faut
    Merci des r�ponses, je vais voir ce que je peux faire avec �a.
    Je vous tiens au courant.

  7. #7
    Membre chevronn� Avatar de yjuliet
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Ao�t 2006
    Messages
    362
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 362
    Par d�faut
    Citation Envoy� par javatwister
    en fait, comme php re�oit un tableau "box", il est n�cessaire de nommer les checkbox ainsi pour r�cup�rer les donn�es;
    je suis d'accord pour le nommage des checkboxes, mais c'�tait plus dans le script que je me posais la question. mais je n'en reste qu'au stade de la question... et de l'intuition

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 124
    Par d�faut
    C'�tait sympa de r�pondre mais malheureusement rien ne marche.

    J'ai essay� de passer les deux syntaxes en argument :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    onsubmit="javascript:validation (this.elements['critere']); return (false);"
    onsubmit="javascript:validation (this.elements['critere[]']); return (false);"
    J'ai chang� le nom de mon tableau en me disant que les "_" pouvaient y faire quelque chose mais �videmment �a ne vient pas de �a.

    Avec toujours la fonction :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function validation (critere)
    {
    	var test_nb = 0;
    	for (i = 1; i <= critere.length; i++)
    	{
    		if (critere[i].checked==false)
    		{
    			test_nb++;
    		}
    	}
    	alert ("test=" + test_nb);
    }
    En fait c'est d�s que j'utilise mon tableau critere que rien ne va plus.
    J'imagine que c'est au niveau syntaxique que se trouve l'erreur mais je ne vois pas o� elle peut �tre.
    Si vous avez d'autres id�es je suis preneur.

    Merci.

  9. #9
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    ce qui m'emb�te un peu, c'est que tu n'aies pas tenu compte des propositions de code html;

  10. #10
    R�dacteur
    Avatar de marcha
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2003
    Messages
    1 571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 571
    Par d�faut
    Salut

    Je te propose une mani�re un peu diff�rente pour consulter tes checkbox
    car le fait que le nom soit compos� de crochets [] peut poser des probl�mes
    de syntaxe.

    Ce que je fait dans ces cas l� c'est de consulter tous les input (du document
    ou du formulaire) avec getElementsByTagName(...)

    Puis je test le type et le nom

    Dans ton cas cela pourrait ressembler � ceci pour savoir si une case
    au moins est coch�e

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function auMoinsUneCase(nom_du_groupe) {
      var champs = document.getElementsByTagName('input');
      for(var i=0;i<champs.length;i++) {
        var c = champs[i];
        if(c.type.toLowerCase()=='checkbox' && c.name==nom_du_groupe && c.checked) return true;
      }
      return false;
    }

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 124
    Par d�faut
    Merci pour ces r�ponses.

    javatwister, j'ai essay� tous les codes qui m'ont �t� donn�s. Mais comme je n'ai r�ussi � en faire marcher aucun, j'�tais revenu au d�but, c'est � dire � ce que j'avais fait dans un premier temps.

    Le seul code qui ne fait pas d'erreur est celui de marcha mais il avec ce code, m�me quand je coche une case, �a ne le prend pas en copte, cela doit venir d'un probl�me de nom.

    Je dois faire autre chose d'urgent mais apr�s je vous tiens au courant si je r�ussi quelque chose.

Discussions similaires

  1. [D�butant] V�rifier si checkbox d'un datagridview est coch�e
    Par GaMi95 dans le forum C#
    R�ponses: 9
    Dernier message: 29/01/2014, 16h02
  2. [XL-2003] Bloquer l'utilisation d'une checkbox si une autre est coch�e
    Par xiungung dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 10/06/2009, 15h36
  3. V�rifier si au moins une case est coch�e dans checkbox
    Par pasc06 dans le forum G�n�ral JavaScript
    R�ponses: 34
    Dernier message: 18/11/2008, 15h14
  4. D�cocher une checkbox si une autre est coch�
    Par Sieldev dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 10/07/2007, 13h11
  5. V�rifier si checkbox est coch�e
    Par MYster dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 24/11/2005, 19h10

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