I am working on the following code. How can I update/ Filter the groups list based on First, Radio selection and then by checkbox selections?
As you can see I am able to filter the list by radios (Not sure how to make the code even shorter instead of using 3 if clauses?) but I do not know how to run second part (checkboxes) specifically some of them are not available for the radios
var groups = [
['Asia', 'G1', 1, 'ASG1'],
['Asia', 'G1', 1, 'ASG2'],
['Asia', 'G2', 0, 'ASG3'],
['Asia', 'G1', 1, 'ASG4'],
['Asia', 'G3', 0, 'ASG5'],
['Asia', 'G3', 1, 'ASG6'],
['Asia', 'G5', 1, 'ASG7'],
['Asia', 'G5', 1, 'ASG8'],
['Africa', 'G1', 1, 'AFG1'],
['Africa', 'G1', 1, 'AFG2'],
['Africa', 'G2', 0, 'AFG3'],
['Africa', 'G3', 0, 'AFG4'],
['Africa', 'G2', 1, 'AFG5'],
['Africa', 'G2', 1, 'AFG6'],
['Africa', 'G3', 1, 'AFG7'],
['Africa', 'G2', 1, 'AFG8'],
['Africa', 'G6', 1, 'AFG9'],
['Africa', 'G6', 1, 'AFG10'],
['America', 'G1', 1, 'AMG1'],
['America', 'G1', 1, 'AMG2'],
['America', 'G1', 1, 'AMG3'],
['America', 'G2', 0, 'AMG4'],
['America', 'G2', 1, 'AMG5'],
['America', 'G2', 0, 'AMG6'],
['America', 'G3', 0, 'AMG7'],
['America', 'G3', 1, 'AMG8'],
['America', 'G3', 0, 'AMG9'],
['America', 'G3', 1, 'AMG10'],
['America', 'G8', 1, 'AMG11'],
['America', 'G8', 0, 'AMG12'],
['America', 'G8', 1, 'AMG13']
];
$('input[type=radio][name=options]').change(function() {
if (this.value == 'Asia') {
for (i = 0; i < groups.length; i++) {
if (groups[i][0] == 'Asia') {
$('ul').append('<li>'+groups[i][3]+'</li>');
}
}
}
if (this.value == 'Africa') {
for (i = 0; i < groups.length; i++) {
if (groups[i][0] == 'Africa') {
$('ul').append('<li>'+groups[i][3]+'</li>');
}
}
}
else if (this.value == 'America') {
for (i = 0; i < groups.length; i++) {
if (groups[i][0] == 'America') {
$('ul').append('<li>'+groups[i][3]+'</li>');
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="multiselect">
<label><input type="radio" name="options" value="Asia" />Asia</label>
<label><input type="radio" name="options" value="Africa" />Africa</label>
<label><input type="radio" name="options" value="America" />America</label>
</div>
<div class="multiselect">
<label><input type="checkbox" name="gp" value="G1" />G 1</label>
<label><input type="checkbox" name="gp" value="G2" />G 2</label>
<label><input type="checkbox" name="gp" value="G3" />G 3</label>
<label><input type="checkbox" name="gp" value="G4" />G 4</label>
<label><input type="checkbox" name="gp" value="G5" />G 5</label>
<label><input type="checkbox" name="gp" value="G6" />G 6</label>
<label><input type="checkbox" name="gp" value="G8" />G 8</label>
</div>
<ul>
</ul>
G 1only theg1will display and so onG1not ASG1 as['Asia', 'G1', ..],