OVH Cloud OVH Cloud

checkbox cochées

4 réponses
Avatar
logone
Salut,

Je cherche un script qui puisse me permettre de compter le nombre de check
box cochées afin de limiter le nombre de case cochées

J'ai trouver quelques scripts mais qui ne conviennent pas

si quelqu'un a ca je suis preneur

Merci

4 réponses

Avatar
Thibault TAILLANDIER
Salut,

Je cherche un script qui puisse me permettre de compter le nombre de check
box cochées afin de limiter le nombre de case cochées

J'ai trouver quelques scripts mais qui ne conviennent pas


Salut,

Admettons que toutes tes checkbox s'appellent :
checkbox-1, checkbox-2 etc .. chekcbox-32
il suffit alors de faire :

function check_max(form) {
var nb_max = 10;
var checked = 0;
for (var i=1; i<2; i++) {
if (form.element['checkbox-'+i].checked) { checked++; }
if (checked > nb_max) { return false; }
}

<form name="monform" onsubmit="return check_max(this);">
<input type="checkbox" name="checkbox-1">1
<input type="checkbox" name="checkbox-2">2
<input type="checkbox" name="checkbox-3">3
<input type="checkbox" name="checkbox-4">4
</form>

Si tes checkbox ont des noms trop différents, tu peux faire un :
for (var el in form.elements) {
if (el.type == 'checkbox' && el.checked) { checked++; }
if (checked > nb_max) { return false; }
}

une autre méthode pourrait consister à vérifier le nom de cases cochées,
à chaque fois que l'utilisateur clique sur une des checkbox. ainsi tu
lui interdit d'en cocher plus.

Bye
--
Thibault

Avatar
logone
Ca c'est de l'aide

merci thibault je teste ca et te tiens au courant

tu as un exemple de ta derniere solution ca me semble plus simple car mes
checkbox sont de ce type

<input name="c1" type="checkbox" class="textfield" id="c1" value="Y" />
<input name="c2" type="checkbox" class="textfield" id="c2" value="Y" />
<input name="c3" type="checkbox" class="textfield" id="c3" value="Y" />


"Thibault TAILLANDIER" a écrit dans le
message de news: 424d60b3$0$7629$
Salut,

Je cherche un script qui puisse me permettre de compter le nombre de
check box cochées afin de limiter le nombre de case cochées

J'ai trouver quelques scripts mais qui ne conviennent pas


Salut,

Admettons que toutes tes checkbox s'appellent :
checkbox-1, checkbox-2 etc .. chekcbox-32
il suffit alors de faire :

function check_max(form) {
var nb_max = 10;
var checked = 0;
for (var i=1; i<2; i++) {
if (form.element['checkbox-'+i].checked) { checked++; }
if (checked > nb_max) { return false; }
}

<form name="monform" onsubmit="return check_max(this);">
<input type="checkbox" name="checkbox-1">1
<input type="checkbox" name="checkbox-2">2
<input type="checkbox" name="checkbox-3">3
<input type="checkbox" name="checkbox-4">4
</form>

Si tes checkbox ont des noms trop différents, tu peux faire un :
for (var el in form.elements) {
if (el.type == 'checkbox' && el.checked) { checked++; }
if (checked > nb_max) { return false; }
}

une autre méthode pourrait consister à vérifier le nom de cases cochées, à
chaque fois que l'utilisateur clique sur une des checkbox. ainsi tu lui
interdit d'en cocher plus.

Bye
--
Thibault



Avatar
newdb
Thibault TAILLANDIER wrote:
Je cherche un script qui puisse me permettre de compter le nombre de check
box cochées afin de limiter le nombre de case cochées


Admettons que toutes tes checkbox s'appellent :
checkbox-1, checkbox-2 etc .. chekcbox-32
il suffit alors de faire :

function check_max(form) {
var nb_max = 10;
var checked = 0;
for (var i=1; i<2; i++) {
if (form.element['checkbox-'+i].checked) { checked++; }
if (checked > nb_max) { return false; }
}

<form name="monform" onsubmit="return check_max(this);">
<input type="checkbox" name="checkbox-1">1
<input type="checkbox" name="checkbox-2">2
<input type="checkbox" name="checkbox-3">3
<input type="checkbox" name="checkbox-4">4
</form>

Si tes checkbox ont des noms trop différents, tu peux faire un :
for (var el in form.elements) {
if (el.type == 'checkbox' && el.checked) { checked++; }
if (checked > nb_max) { return false; }
}

une autre méthode pourrait consister à vérifier le nom de cases cochées,
à chaque fois que l'utilisateur clique sur une des checkbox. ainsi tu
lui interdit d'en cocher plus.


perso, j'avais fait un truc comme ça :

///////////////////////////////////////////////////////////////////////
// Compte le nombre de cases cochées dans le groupe. //
// 'box' est la case cochée, //
// 'nb' le nombre de cases du groupe, //
// 'max' le nombre maximal de coches autorisé. //
///////////////////////////////////////////////////////////////////////
function cpt(box,nb,max) {
var groupe = box.name.substring(0, box.name.length - 1)
nbr = 0;
var bt = new Array();
for (i = 0; i < nb; i++) {
bt[i+1] = document.forms[0].elements[groupe+(i+1)].checked;
nbr += (bt[i+1] ? 1 : 0);
}
if (nbr > max) {
box.checked = false;
alert('Veuillez ne pas cocher plus de ' + max + ' cases.');
nbr--
}
}


avec comme html (gaffe aux coupures de ligne) :

<p>
<span class="num">04.2</span>Quel est le secteur d'activit&eacute;
secondaire&nbsp;? <span class="note">(3 r&eacute;ponses
maximum)</span><br>
<label for="q04.21"><input type="checkbox" name="q04.21" id="q04.21"
value="industrie" onClick="cpt(this,7,3);">industrie</label>
<label for="q04.22"><input type="checkbox" name="q04.22" id="q04.22"
value="btp" onClick="cpt(this,7,3);">btp</label>
<label for="q04.23"><input type="checkbox" name="q04.23" id="q04.23"
value="tertiaire" onClick="cpt(this,7,3);">tertiaire</label>
<label for="q04.24"><input type="checkbox" name="q04.24" id="q04.24"
value="hotellerie" onClick="cpt(this,7,3);">h&ocirc;tellerie</label>
<label for="q04.25"><input type="checkbox" name="q04.25" id="q04.25"
value="transport" onClick="cpt(this,7,3);">transport/label>
<label for="q04.26"><input type="checkbox" name="q04.26" id="q04.26"
value="maintenance" onClick="cpt(this,7,3);">maintenance</label>
<label for="q04.27"><input type="checkbox" name="q04.27" id="q04.27"
value="generaliste"
onClick="cpt(this,7,3);">g&eacute;n&eacute;raliste</label>
</p>


--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="


Avatar
logone
ca m'a l'air pas mal ca

Merci a vous 2