Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript toggle checkbox

I need to toggle all buttons with a single function. Function needs to toggle all checkboxes in the document as my checkboxes are freestanding and not part of a form.

I currently have this, but it is not working properly. I get syntax error: syntax error in my firefox console.

    checked=false;
    function checkedAll() {
        var c = new Array();
        c = doc.getElementsByTagName('input');
        if (checked == false){
            checked = true;
        }else{
            checked = false;
        }
        for (var i = 0; i < c.length; i++){
            if (c[i].type == 'checkbox'){
                c[i].checked = checked;
            }
        }
    }

How can I fix my code?

Thanks

like image 922
I wrestled a bear once. Avatar asked Feb 02 '26 21:02

I wrestled a bear once.


2 Answers

Two main items to refactor. First, instead of doc it must be document. Second instead of relying on a global just pass in a boolean to determine whether or not to check the checkboxes.

function checkedAll(isChecked) {
    var c = document.querySelectorAll('input[type="checkbox"]');

    for (var i = 0; i < c.length; i++){
        c[i].checked = isChecked;
    }
}

JS Fiddle: http://jsfiddle.net/Jvnfm/107/

like image 175
Kevin Bowersox Avatar answered Feb 04 '26 11:02

Kevin Bowersox


You can alternatively perform the following for each checkbox element:

    c[i].click();

This version will trigger any associated event handlers associated with that element.

like image 42
user9027325 Avatar answered Feb 04 '26 11:02

user9027325



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!