Nombre checkbox cochées

Résolu
cseagle Messages postés 99 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 5 août 2009 - 11 mars 2005 à 18:19
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 - 12 mars 2005 à 03:05
Bonjour,



Je souhaiterai savoir combien de checkbox dans mon formulaire ont été cochées.

A savoir que mes checkbox portent le nom siteX (ou X est une variable incrémentée, due à une boucle php).



J'ai trouvé plein de scripts qui font à peu près ce que je veux mais
toujours avec des checkbox dont le nom est prédéfini (voir identique).



Moi ce que je veux c'est savoir combien de checkbox sont cochés dans mon formulaire, quelque soit leur nom.



Es ce possible ? Si oui comment faire ?



Merci d'avance

4 réponses

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
11 mars 2005 à 21:41
Salut!

Voici un exemple :


<html>
<head>
<title>Untitled</title>

<STYLE
type= "
text/
css">

</STYLE>

<script type="text/javascript">

function checkBox
()

{
nf
= document
.form;
cachee
= nf
.cache;
cachee
.nombre
=
0;

for
(e
=0;e
<nf
.length;e
++)

if
(nf
.elements
[e
].name
.indexOf
("site")==0)

{
nf
.elements
[e
].onclick
=
new Function("cachee.nombre cachee.nombre + (this.checked?1:-1);cachee.value cachee.nombre;")

if
(nf
.elements
[e
].checked
) cachee
.nombre
++;

}
cachee
.value
= cachee
.nombre;

}

</script>
</head>

<form name=
"form">

</form>

</html>

A+, Ghislain
3
cseagle Messages postés 99 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 5 août 2009
11 mars 2005 à 18:21
Ah oui j'oubliais, je souhaite incrémenter un champ masqué à chaque case cochés et le désincrémenter au décochage.
0
cseagle Messages postés 99 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 5 août 2009
11 mars 2005 à 23:53
Ca marche nikel, merci beaucoup.



Par contre si tu pouvais m'expliquer chaque ligne à partir du premier For ce serait sympa.

J'aime pas recopier betement, je veux comprendre (par exemple c'est quoi indexOf ?)

Et puis ca m'aidera pour d'éventuels autres scripts.



Merci en tout cas
0
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
12 mars 2005 à 03:05
Salut!

En fait c'est assez simple comme script.

La boucle FOR incrémente la variable e jusqu'a ce qu'il a atteint le nombre d'éléments dans le formulaire.

Le premier IF verifie si le nom du formulaire commence par site. Si ce n'est pas le cas, il passe a l'élément du formulaire suivant.

La méthode indexOf retourne la position de la chaîne de caractère du premier paramètre à partir de l'index 0 de la chaîne ou a partir de la position du deuxième paramètre qui est optionnel. Si rien n'est trouvé, la méthode retourne -1.

Donc si indexOf trouve la chaîne site a la position 0, il attache une nouvelle fonction à l'évènement onclick de l'élément checkbox.

La nouvelle fonction incrémente ou décrémente le nombre de checkbox a la variable nombre attaché a l'élément caché. Ensuite l'élément caché est mis à jour dynamiquement avec cette valeur.

Le deuxième IF vérifie si checkbox est coché par defaut et si c'est le cas incrémente la variable nombre attaché a l'élément caché.

Après la boucle FOR, on met a jour la valeur de la variable caché.

J'espers avoir été claire

A+, Ghislain
0
Rejoignez-nous