A voir également:
- Javascript: tester les cases a cocher
- Telecharger javascript - Télécharger - Langages
- Node.js javascript runtime virus ✓ - Forum Virus
- Javascript echo ✓ - Forum PHP
- Erreur #125 javascript - Forum Mozilla Firefox
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
17 réponses
Test pour voir si au moins une case a été cochée
function <FunctionName>() { var i = 0; var COCHE = false; for (i=0;i< document.getElementsByName(<CheckboxName>).length;i++) { if(document.getElementsByName(<CheckboxName>).item(i).checked) { COCHE = true; break; } } if(COCHE) alert("Au moins une case cochée"); else alert("Pas de case cochée"); }
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
12 août 2003 à 14:40
12 août 2003 à 14:40
Salut,
Mon premier reflexe serait de tester chaque case et regarder si il est pas coché ... le code serait alors :
ceci marche à condition que elements[0] qui est le premier élément de ton formulaire soit une check box si c pas le cas regarde a quel numéro ton premier checkbox se place.
puis ensuite dans ton form :
je sais pas si c tres clair mon affaire la ...
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
Mon premier reflexe serait de tester chaque case et regarder si il est pas coché ... le code serait alors :
<script language="javascript"> <!-- function donneavis() { if ((document.forms[0].elements[0].checked==false) && (document.forms[0].elements[1].checked==false) && (document.forms[0].elements[2].checked==false) etc .... ) { alert("Votre avis, Merci"); return false; } return true; } //--> </script>
ceci marche à condition que elements[0] qui est le premier élément de ton formulaire soit une check box si c pas le cas regarde a quel numéro ton premier checkbox se place.
puis ensuite dans ton form :
<form method=post action="http://www.votresite.com/cgi/votreform.cgi" name="formulaire" OnSubmit="return donneavis()">
je sais pas si c tres clair mon affaire la ...
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
12 août 2003 à 15:06
12 août 2003 à 15:06
POUR OMAR :
non bah c pas tres difficile en fait !
Une fois que tu as fait ta requete, tu compte le nombre de ligne (et donc le nombre de checkbox) et tu le passe en parametre lors de l'appel de ta fonction :
par exemple si tu as 5 checkbox tu fais :
<form method=post action="http://www.votresite.com/cgi/votreform.cgi" name="formulaire" OnSubmit="return donneavis(5)">
ensuite dans la fonction :
et voila !!!
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
non bah c pas tres difficile en fait !
Une fois que tu as fait ta requete, tu compte le nombre de ligne (et donc le nombre de checkbox) et tu le passe en parametre lors de l'appel de ta fonction :
par exemple si tu as 5 checkbox tu fais :
<form method=post action="http://www.votresite.com/cgi/votreform.cgi" name="formulaire" OnSubmit="return donneavis(5)">
ensuite dans la fonction :
<script language="javascript"> <!-- function donneavis(val) { var i; for (i=0;i<val;i++) { if ((document.forms[0].elements[i].checked==true) { return true; } } alert('donner votre avis'); return false; } //--> </script>
et voila !!!
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
Merci steelspirit mais justement ca j arrive àfaire a savoir tester chaque case mais le pb est que comme j ai dit en haut j'ai
ca signifie que selon le tat de la BD j auraisd une fois
-5 lignes dc 5 cases a coche
-une fois 3 cases a cocher car 3 lignes
Donc tester chaque ligne en dur c pas possible mais il me semble que c possible via un tableau mais cmt..?
1 nombre variable de lignes avec des cases a cocher
ca signifie que selon le tat de la BD j auraisd une fois
-5 lignes dc 5 cases a coche
-une fois 3 cases a cocher car 3 lignes
Donc tester chaque ligne en dur c pas possible mais il me semble que c possible via un tableau mais cmt..?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
13 août 2003 à 09:52
13 août 2003 à 09:52
salut omar,
ta fonction Marden te la donne juste au dessus :
document.formName.radioName.length
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
ta fonction Marden te la donne juste au dessus :
document.formName.radioName.length
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
n@n¤u
Messages postés
195
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
24 octobre 2008
10
30 oct. 2003 à 11:32
30 oct. 2003 à 11:32
slt,
je crois que j'ai la solution a ton problème...
voici une fonction qui "semble" marcher:
et dans ton bouton pour valider tu mets:
cette fonction est dynamique en fonction du nbre de checkbox
De nada amigos!
(@_@)
je crois que j'ai la solution a ton problème...
voici une fonction qui "semble" marcher:
function checkbox_selected(form) { for (i=0, n=form.elements.length; i<n; i++) { if ((form.elements[i].checked == true)) return true; } alert("Cochez une case."); return false; }
et dans ton bouton pour valider tu mets:
<INPUT type="submit" value="Valider" onclick='checkbox_selected(this.form)' >
cette fonction est dynamique en fonction du nbre de checkbox
De nada amigos!
(@_@)
//Fonction qui verifie s'il y a au moins nb_mini case coché
function cbox_coches(obj_form, nb_mini)
{
var i;
var obj_input;
var nb_coche = 0;
for (i = 0; i < obj_form.elements.length; i++)
{
obj_input = obj_form.elements[i];
if( obj_input.type=="checkbox") // on teste si CheckBox
{
if( obj_input.checked)
nb_coche ++;
}
}
return (nb_coche >= nb_mini);
}
function cbox_coches(obj_form, nb_mini)
{
var i;
var obj_input;
var nb_coche = 0;
for (i = 0; i < obj_form.elements.length; i++)
{
obj_input = obj_form.elements[i];
if( obj_input.type=="checkbox") // on teste si CheckBox
{
if( obj_input.checked)
nb_coche ++;
}
}
return (nb_coche >= nb_mini);
}
Et bien j ai trouvé un truc sur google mais ca marche pas:
il m affiche "undefined"
il m affiche "undefined"
<html><head> </head> <!--debut--> <body><br><br><br> <!--le formulaire de saisie--> <FORM name ="omar" METHOD="post" ACTION="addPassp"> <input type="hidden" name="numb" value="RRR"> <input type="hidden" name="niveau" value="RRR"><b>Etape 1: Ajout d'un passe</b> <b> partiel</b> <hr> <br> <input type="checkbox" name="C1" value="ON"> <p> <input type="checkbox" name="C2" value="ON"> </p> <p><input type="checkbox" name="C3" value="ON"> </p> <p><input type="checkbox" name="C4" value="ON"> <br><br> <INPUT onclick=verifForm(this.form) type=button value=Envoyer style="background-color: #D2E9FF"> <input type="reset" value="Recommencer" style="background-color: #D2E9FF"> </p> </form> <SCRIPT language=JavaScript> document.writeln("il ya "+document.omar.lenght+"checkbox"); </script> <p><font size="1">*champs obligatoires</font> <p> </p></body></html>
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
12 août 2003 à 15:25
12 août 2003 à 15:25
il y a une faute a lenght ! ça s'écrit length
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
210
12 août 2003 à 16:32
12 août 2003 à 16:32
Salut à vous,
Il y a sans doute des informations à récupérer via :
document.{formName}.{radioName}.length
Il y a sans doute des informations à récupérer via :
document.{formName}.{radioName}.length
Salut, le code suivant
ne marche pas.
Ja i tapé ceci :
alert(form.p1.length);
et les message es "undefined"
d ailleurs je vois pas cmt ce bt de code marcherait puisque si
je l analyses lexicigraohiquement il donnerait la longeur d'un bouton radio donnée du formulaire x du document en cours.
or je veux connaitre le nb total de bouton radios du formulaire! c différent
document.formName.radioName.length
ne marche pas.
Ja i tapé ceci :
alert(form.p1.length);
et les message es "undefined"
d ailleurs je vois pas cmt ce bt de code marcherait puisque si
je l analyses lexicigraohiquement il donnerait la longeur d'un bouton radio donnée du formulaire x du document en cours.
or je veux connaitre le nb total de bouton radios du formulaire! c différent
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
30 oct. 2003 à 16:08
30 oct. 2003 à 16:08
Bjr,
"Think different" comme ils disent ...
Et ca donne :
@+
PhP [Push the button,Don't push the
. button,Trip the station,Change the channel]
"Think different" comme ils disent ...
Et ca donne :
<html> <head> <script type="text/javascript"> <!-- function tst_cbx() { // On peut aussi utiliser : ref=document.getElementById('demo'); ref=document.forms['demo']; result=false; for (i=0; i<ref.cbx.length; i++) { if (ref.cbx[i].checked) { result=true; break; } } alert((result) ? "Ok":"Cochez au moins une case SVP !"); } //--> </script> </head> <body> <form id="demo" name="demo"> <input type="checkbox" name="cbx"></p> <input type="checkbox" name="cbx"></p> <input type="checkbox" name="cbx"></p> <input type="checkbox" name="cbx"></p> <input type="button" value="Ok" onclick="tst_cbx()"> </form> </body> </html>
@+
PhP [Push the button,Don't push the
. button,Trip the station,Change the channel]
Pour info, "document.formName.radioName.length" donne "undefined" lorsqu'il n'y a qu'un seul bouton radio.
il faut tester sur
document.formName.radioName.nodeName
s'il n'y en a qu'un, ça renvoie INPUT
s'il y en a plusieurs, ça renvoie undefined
Cdlt
document.formName.radioName.nodeName
s'il n'y en a qu'un, ça renvoie INPUT
s'il y en a plusieurs, ça renvoie undefined
Cdlt
Merci a tous mais ce n est pas fini malheureusement car le nb de CASES A COCHER est variable!!!! j ai donc encore besoin :
d1 fonction qui pr 1 formulaire donné me retourne le nb de cases a cocher de ce formulaire
d1 fonction qui pr 1 formulaire donné me retourne le nb de cases a cocher de ce formulaire
PhP, ton code marche, mais comment fais tu pour récupérer les valeurs de "cbx" sur la page suivante ? chaque checkbox ayant le meme nom ?
Et oui Azazel !!!
Je suis dans le même cas. C'est bien bo tout ca, mais pour envoyer la valeur des cases à cocher en php, il faut utiliser cbx[], et la du coup javascript ne marche plus.
Est ce quelqu'un aurait une idée, svp ?
Je suis dans le même cas. C'est bien bo tout ca, mais pour envoyer la valeur des cases à cocher en php, il faut utiliser cbx[], et la du coup javascript ne marche plus.
Est ce quelqu'un aurait une idée, svp ?
<?php echo "<pre>Value : ",$_POST['cbx'],"</pre>"; ?> <form id="demo" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <p><label>case 1 : </label><input type="checkbox" id="cbx1" name="cbx[]" value="1"/></p> <p><label>case 1 : </label><input type="checkbox" id="cbx2" name="cbx[]" value="2"/></p> <p><label>case 1 : </label><input type="checkbox" id="cbx3" name="cbx[]" value="3"/></p> <p><input type="submit" value="Ok" onclick="tst_cbx()" /></p> </form>
Si tu veux absolument vérifier par Javascript tes cases à cocher il ne faut pas les nommer cbx[], mais leur donner un nom différent pour chacune.
Tu me diras, je ne peux pas, car leur nombre peut être variable !
Alors au moment de la création de ton formulaire tu crée les noms dynamiquement avec des indices cbx1 cbx2 etc;
Comment:
ensuite pour les récupérer page suivante, tu explore l'array $_POST par une boucle et avec un test substr($_POST,0,3)=="cbx" pour empiler les valeurs de toutes tes checkbox dans un array ou autre.
Tu me diras, je ne peux pas, car leur nombre peut être variable !
Alors au moment de la création de ton formulaire tu crée les noms dynamiquement avec des indices cbx1 cbx2 etc;
Comment:
for($i=1;$i<$ta_limite,$i++){ $nom_cbx="cbx".$i; <? <input type="checkbox" name="<?php echo $nom_cbx ; ?>" value="....">xxxxxxx <?php }
ensuite pour les récupérer page suivante, tu explore l'array $_POST par une boucle et avec un test substr($_POST,0,3)=="cbx" pour empiler les valeurs de toutes tes checkbox dans un array ou autre.
Salut Alain,
Le code pour tester les checkbox n'a vraiment dépanner mais voilà je ne perçois pas encore comment écrire la boucle contenant le test substr($_POST,0,3)=="cbx" car si je me comprend bien, il n'y a pas de Array poster par le formulaire vu que nous avons donner des noms par incrémentation de la variable $i aux différentes case à cocher.
Merci d'éclairer ma lanterne.
Le code pour tester les checkbox n'a vraiment dépanner mais voilà je ne perçois pas encore comment écrire la boucle contenant le test substr($_POST,0,3)=="cbx" car si je me comprend bien, il n'y a pas de Array poster par le formulaire vu que nous avons donner des noms par incrémentation de la variable $i aux différentes case à cocher.
Merci d'éclairer ma lanterne.
Salut Alain,
Le code pour tester les checkbox m'a vraiment dépanné mais voilà je ne perçois pas encore comment écrire la boucle contenant le test substr($_POST,0,3)=="cbx" car si je me comprend bien, il n'y a pas de Array poster par le formulaire vu que nous avons donner des noms par incrémentation de la variable $i aux différentes case à cocher.
Merci d'éclairer ma lanterne.
Le code pour tester les checkbox m'a vraiment dépanné mais voilà je ne perçois pas encore comment écrire la boucle contenant le test substr($_POST,0,3)=="cbx" car si je me comprend bien, il n'y a pas de Array poster par le formulaire vu que nous avons donner des noms par incrémentation de la variable $i aux différentes case à cocher.
Merci d'éclairer ma lanterne.
17 juin 2009 à 17:25
Par rapport à ta solution, les name="" de tes checkboxs doivent-ils être tous différents ? ou est-ce que ça peut être name="reponse[]", sous forme de tableau ?
Dans mon cas, j'aimerai vérifier que au moins une Cbx ai bien été cochée en javascript en utilisant name="reponse[]", car ensuite j'utilise php et mysql pour stocker les valeurs de mon tableaux...
Mais je ne sais pas si c'est réalisable !
ps : j'ai essayé ta soluc avec les 2 façon d'écrire le name, mais ça ne fonctionne pas chez moi. J'ai surement un bug qq part. Ta réponse m'aiderai à creuser au bon endroit
D'avance merci