Compter les coches
RiKé
Messages postés
45
Statut
Membre
-
RiKé Messages postés 45 Statut Membre -
RiKé Messages postés 45 Statut Membre -
Bonjour @ tous
Je cherche à créer un compteur qui me dise combien de checkbox sont cochées en temps réel sur une page .asp
Un JavaScript sans doute ???
Je cherche à créer un compteur qui me dise combien de checkbox sont cochées en temps réel sur une page .asp
Un JavaScript sans doute ???
5 réponses
-
Effectivement, Javascript :
Declaration de tes checkbox :
<form name="mon_form" ...>
<input type="checkbox" name="check1">
<input type="checkbox" name="check2">
...
</form>
Pour récupérer le compte, tu fais appel à la fonction suivante :
function compte() {
var compte ;
for (i=1 ; i<=n ; i++) {
if (eval("document.mon_form.check"+i+".checked")) {
compte++;
}
}
return compte ;
}
Cela devrait marcher.
Dis moi quand même si cela marche ou pas.
Stéphanie -
Voici le code de mon formulaire...
Les checkbox sont créées en dynamique
<form method="post" action="plan_query_societe.asp" name="nomenc">
<%Dim x
x=0
Do while not Rs_societe.EOF
x=x+1%>
<input type="checkbox" onclick="javascript:compte();" name="check<%=x%>" value="<%=Rs_societe("cle1_cle2")%>"><%=Rs_societe("societe")%><BR>
<%
Rs_societe.MoveNext
Loop%>
.../...
</form>
et voici la fonction
<script language="JavaScript">
function compte() {
var compte ;
for (i=1 ; i<=355 ; i++) {
if (eval("document.nomenc.check"+i+".checked")) {
compte++;
}
}
alert("\n\nVous avez sélectionné " + compte + " sociétés !");
}
</script>
Je n'y connais pas grand chose en JavaScript... la variable compte est-elle bien déclarée?
Merci beaucoup pour ton aide... -
Ca marche très bien, merci beaucoup.
Cependant vu le nombre de checkboxes de ma pages (350), le script est un peu long à tout balayer....
J'va réfléchir à autre chose...
Merci encore pour ton coup de pouce...
J'espère un jour pouvoir à mon tour t'aider.
@+
Eric-
Pt-être en mettant une variable globale Javascript :
<script>
var mon_compte = 0 ;
</script>
Je crois que par défaut aucune société n'est choisie, donc tu l'initialise à 0 sinon, tu comptes le nombre de société cliquées avec la fonction compte().
Puis, quand tu cliques sur un checkbox, tu vérifies si c'était cliqué : alors, tu enlève 1 à ta variable, sinon, tu ajoutes 1 :
<input type=checkbox name=check2 onclick="maj('click2')">...
<script>
function maj(name) {
if (document.mon_form.name.checked) {
mon_compte++;
alert ("vous avez choisi" + mon_compte + "societe");
}
else {
mon_compte--;
alert ("vous avez choisi" + mon_compte + "societe");
}
}
</script>
ou alors, tu ne fais pas appel à ta fonction compte() à chaque fois mais seulement quand tu valides :
<input type=submit name="valider" onclick="compte()">
Si tu t'y connais en XMLDOM, tu peux peut-être m'aider ...
Stéphanie
-
-
Vraiment merci, ca tourne beaucoup plus vite, sauf que le décochage compte comme un cochage, c-a-d, que je coche ou décoche, mon_compte=mon_compte+1
J'ai modifié un peu le script, mais sans résultat...!
function maj(name) {
if (document.nomenc.name.checked = true) {
mon_compte++;
alert ("vous avez choisi " + mon_compte + " societes");
}
if (document.nomenc.name.checked = false) {
mon_compte--;
alert ("vous avez choisi " + mon_compte + " societes");
}
}-
As-tu bien mis dans ton input :
<input type="checkbox"
onclick="javascript:maj('check<%=x%>)"
name="check<%=x%>"
value="<%=Rs_societe("cle1_cle2")%>">
...
Si tu as laissé maj('check2'), c'est normal que cela ne marche pas : le paramêtre est lui aussi dynamique : tu ne vérifies ainsi que la case que tu viens de cocher ou décocher.
J'espère que ce coup-ci, cela va marcher ...
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Oui, oui, tout est paramétré dynamiquement...
Vu la vitesse d'execution, il vérifie bien que la checkbox 'active', le probleme est qu'il ne cherche pas à savoir si 'cochée' ou 'non cochée', dans les deux cas, il ne voit que le clic dans la checkbox et incremente 'mon_compte' de +1 meme si j'ai décoché.
function maj(name) {
if (document.nomenc.name.checked = true) {
mon_compte++;
alert ("vous avez choisi " + mon_compte + " societes");
}
else {
mon_compte--;
alert ("Choisi " + mon_compte + " societes");
}
}
<input type="checkbox" onclick="maj('check<%=x%>');" name="check<%=x%>" value=...../....
Malheureusement je ne connais pas le XMLDOM (qu'est-ce?) mais qui sait ? Ce sera un plaisir de te dépanner un jour.