"Thomas Voller" <voller@voller.nospam.dk> writes:
> Sikkert simpelt, men hvordan tæller man antallet af markerede checkbokse på
> en side med javascript? Jeg ledte på nettet, fandt et script og modificerede
> det. Det oprindelige script fandt jeg her:
>
http://www.js-examples.com/example/?ex=950&mode=1&COLOR_OFF=YES
>
> Min modification er her:
....
> Jeg kan bare ikke få det til at virke. Jeg markerer nogle checkbokse og
> kører funktionen, men funktionen returnerer tallet nul hver gang. Et
> eksempel findes her:
>
http://www.voller.dk/rod/count.htm
>
> Kan nogle finde brøleren?
Du genneløber kun børnene af *et* element. På siden er det
form-element. Form-elementet har netop to børn, begge paragraffer
(p-elementer), derfor finder den ingen input-elementer. For at få dem
med skal du også gennemløbe børnenes børn og så videre.
En rekursiv version kunne være:
<script type="text/javascript">
function countChecked(elem) {
if (elem.tagName.match(/input/i) && elem.type.match(/checkbox/i)) {
return (elem.checked?1:0);
}
var count = 0;
for (var chld = elem.firstChild;chld !== null;chld = chld.nextSibling) {
count += countChecked(chld);
}
return count;
}
</script>
Alternativt kunne du nøjes med at gennemløbe input-elementerne i formen:
<script type="text/javascript">
function countChecked(form) {
var elems = form.elements;
var count = 0;
for (var i=0;i<elems.length;i++) {
if (elems[i].type.match(/radiobox/i) && elems[i].checked) {
count++;
}
}
return count;
}
</script>
Endnu mere alternativt, hvis de ikke alle input-elementerne er i samme
form, så kan elems findes ved:
var elems = document.getElementsByTagName("input");
Håber det hjælper.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
Art D'HTML: <URL:
http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'