12

I have multiple checkboxes

<div class="data">    
    <span>
    <input name="employee" type="checkbox" value="Alex"/>
    <label for="employee">Alex</label>
    </span> 

    <span>
    <input name="employee" type="checkbox" value="Frank"/>
    <label for="employee">Frank</label>
    </span>    

    <span>
    <input name="employee" type="checkbox" value="Mark"/>
    <label for="employee">Mark</label>
    </span>
</div>

How to find all checked checkboxes and create json or array with result of checking?

5 Answers 5

17

In case you just want to use pure/vanilla JS, here is an example:

HTML HEAD

<script type="text/javascript">
function getCheckedCheckboxesFor(checkboxName) {
    var checkboxes = document.querySelectorAll('input[name="' + checkboxName + '"]:checked'), values = [];
    Array.prototype.forEach.call(checkboxes, function(el) {
        values.push(el.value);
    });
    return values;
}
</script>

HTML BODY

<div class="data">    
    <span>
    <input name="employee" type="checkbox" value="Alex"/>
    <label for="employee">Alex</label>
    </span> 

    <span>
    <input name="employee" type="checkbox" value="Frank"/>
    <label for="employee">Frank</label>
    </span>    

    <span>
    <input name="employee" type="checkbox" value="Mark"/>
    <label for="employee">Mark</label>
    </span>

    <input type="button" onclick="alert(getCheckedCheckboxesFor('employee'));" value="Get Values" />
</div>

JS Fiddle link: http://jsfiddle.net/dY372/

Sign up to request clarification or add additional context in comments.

Comments

8

Try this: Fiddle

jQuery:

var selected = [];
$('.data input:checked').each(function() {
    selected.push($(this).val());
});

Javascript:

var checkboxes = document.getElementsByName('employee');
var selected = [];
for (var i=0; i<checkboxes.length; i++) {
    if (checkboxes[i].checked) {
        selected.push(checkboxes[i].value);
    }
}

1 Comment

How about if checkboxes are on pagination? How to check if its being checked?
2

Using querySelectorAll:

var checked = document.querySelectorAll('[name="employee"]:checked');

Support: IE9+.

Comments

1
var elements=document.getElementsByName('employee');

should return you an array of the elements you require

DEMO

Comments

1
function checked(){

    var items=getElementsByname('checkbox');

    var selectedlist=[];

    for(var i=0; i<items.length; i++)       
    {
        if(items[i].type=='checkbox' && items[i].checked==true)                 
            selectedlist+=items[i].value+"\n";
    }

    alert(selectedlist);
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.