Reputation: 1129
I want to group the checkbox in the following 2 divs, so that when a user checks on of the checkbox, the other checkboxes in that div are uncheck.
How can i do this using JQuery?
I am trying to use the following JQuery snippet but its not working.
$('input[type="checkbox"]').on('change', function() {
$(this).siblings('input[type="checkbox"]').prop('checked', false);
});
The following is the HTML with the groups of Checkboxes.
<!--- Group 1 -->
<div id="banner_main" class="row">
<div class="question">
BANNER MAIN
</div>
<div class="switch">
<input id="cmn-toggle-banner_main-admob" class="cmn-toggle cmn-toggle-yes-no" checked type="checkbox">
<label for="cmn-toggle-banner_main-admob" data-on="ADMOB" data-off="ADMOB"></label>
</div>
<div class="switch">
<input id="cmn-toggle-banner_main-fb" class="cmn-toggle cmn-toggle-yes-no" type="checkbox">
<label for="cmn-toggle-banner_main-fb" data-on="FB" data-off="FB"></label>
</div>
<div class="switch">
<input id="cmn-toggle-banner_main-mc" class="cmn-toggle cmn-toggle-yes-no" type="checkbox">
<label for="cmn-toggle-banner_main-mc" data-on="MC" data-off="MC"></label>
</div>
<div class="switch">
<input id="cmn-toggle-banner_main-appnext" class="cmn-toggle cmn-toggle-yes-no" type="checkbox">
<label for="cmn-toggle-banner_main-appnext" data-on="APPNEXT" data-off="APPNEXT"></label>
</div>
</div>
<!--- Group 2 -->
<div id="banner_wp" class="row">
<div class="question">
BANNER WALLPAPER
</div>
<div class="switch">
<input id="cmn-toggle-banner_wp-admob" class="cmn-toggle cmn-toggle-yes-no" checked type="checkbox">
<label for="cmn-toggle-banner_wp-admob" data-on="ADMOB" data-off="ADMOB"></label>
</div>
<div class="switch">
<input id="cmn-toggle-banner_wp-fb" class="cmn-toggle cmn-toggle-yes-no" type="checkbox">
<label for="cmn-toggle-banner_wp-fb" data-on="FB" data-off="FB"></label>
</div>
<div class="switch">
<input id="cmn-toggle-banner_wp-mc" class="cmn-toggle cmn-toggle-yes-no" type="checkbox">
<label for="cmn-toggle-banner_wp-mc" data-on="MC" data-off="MC"></label>
</div>
<div class="switch">
<input id="cmn-toggle-banner_wp-appnext" class="cmn-toggle cmn-toggle-yes-no" type="checkbox">
<label for="cmn-toggle-banner_wp-appnext" data-on="APPNEXT" data-off="APPNEXT"></label>
</div>
</div>
Upvotes: 0
Views: 67
Reputation: 82241
Checkboxes are not siblings of each other,their parent divs are. You need to traverse to checked checkbox parent, then to its siblings and find checkboxes in it:
$('input[type="checkbox"]').on('change', function() {
$(this).parent().siblings().find('input[type="checkbox"]').prop('checked', false);
});
You can also use:
$('input[type="checkbox"]').on('change', function() {
$(this).closest('.row').find(':checkbox').not(this).prop('checked', false);
});
Upvotes: 3