I have several checkboxes with a name array and I want the output of the checked boxes to be a variable with a comma separated list.
<input type="checkbox" name="example[]" value="288" />
<input type="checkbox" name="example[]" value="289" />
<input type="checkbox" name="example[]" value="290" />
For example if the first and last box are selected the output will be:
var output = "288,290";
How can I do this with jQuery?
You can use :checkbox
and name attribute selector (:checkbox[name=example\\[\\]]
) to get the list of checkbox with name="example[]"
and then you can use :checked
filter to get only the selected checkbox.
Then you can use .map
function to create an array out of the selected checkbox.
DEMO
var output = $.map($(':checkbox[name=example\\[\\]]:checked'), function(n, i){
return n.value;
}).join(',');
Currently un-tested, but I believe the following should work:
var valuesArray = $('input:checkbox:checked').map( function () {
return $(this).val();
}).get().join();
Edited, after a small break, to use native DOM, rather than $(this).val()
(which is needlessly expensive, in context):
var valuesArray = $('input:checkbox:checked').map( function() {
return this.value;
}).get().join(",");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With