views:

71

answers:

3

I have check buttons on the document.

I want to know how many of the buttons on the docment are checked. I tried to do this alert(document.all.CustmerRequested.checked.length); but it says undefined. Any idea what I can do. sorry a complete newbie in Javascript

+1  A: 

Use a Javascript framework like Prototype or JQuery to find the elements you need to check, e.g. In Prototype:

var inputs = $$('input');

This returned array can then looped over to count the number of inputs that are checked checkboxes, like so:

for (var i=0; i<inputs.length; i++){
    if (inputs[i].type == 'checkbox' && inputs[i].checked) {
        numChecked++;
    }
}
Ciaran Archer
+3  A: 

If you are starting to build a site that needs this kind of browser-side programming reguarly, I would suggest looking at jQuery. See here for tutorials: http://docs.jquery.com/Tutorials

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"&gt;&lt;/script&gt;
<script type="text/javascript">
    $(function() {
        $("#someButton").click(function() {
            var checkedBoxes = $("#yourForm input:checked");
            alert(checkedBoxes.length + " checked.");
        });
    });
</script>
Stuart Branham
+1: You beat me to it.
R. Bemrose
A: 

Yes, you can do this with JavaScript. No, you don't need jQuery.

Here's one way:

function howManyAreChecked()
{
one = document.getElementById("one").checked;
two = document.getElementById("two").checked;
three= document.getElementById("three").checked;

var checkCount = 0;
if ( one == true )
  { checkCount = checkCount + 1 }
if ( two == true )
  { checkCount = checkCount + 1 }
if ( three == true )
  { checkCount = checkCount + 1 }

alert(checkCount);
}

The example above assumes that you've got 3 checkboxes in HTML, with ids "one", "two" and "three". The script first stores the value of the "checked" property, which can be either TRUE or FALSE. The script then looks at each different variable, and if TRUE, increments the counter.

There could many causes why your code is giving you an undefined error. If you can post your code - either a link to your page, or all or HTML and all your JavaScript - then we can take a look at that.

KatieK