JSFiddle - React, Tailwind, and code Playground
HTML
<div>
<div class="container-select">
<div class="form-select">
<input class="form-radio" type="radio" name="select_y" />
</div>
</div>
<div class="container-select">
<div class="form-select">
<input class="form-radio" type="radio" name="select_y" />
</div>
</div>
</div>
<div>
<div class="container-select">
<div class="form-select">
<input class="form-checkbox" type="checkbox" name="select_x" />
</div>
</div>
<div class="container-select">
<div class="form-select">
<input class="form-checkbox" type="checkbox" name="select_x" />
</div>
</div>
</div>
CSS
.container-select {
display: inline;
position: relative;
display: inline-block;
height: 100px;
width: 100px;
border: 1px solid black;
margin: 5px;
padding: 5px;
vertical-align: top;
}
.container-select.selected {
background-color: #eee;
}
JavaScript
$(document).ready(function() {
// Radios
$('.container-select').click(function(event) {
// Check radio when clicked on container
$('.form-radio', this).prop('checked', true);
// Remove all 'selected'-classes from all containers
$('.container-select').removeClass('selected');
// Add 'selected'-class for current container
$(this).addClass('selected');
/*
// Checkboxes
if ($('.form-checkbox', this).is(':checked')) {
$('.form-checkbox', this).prop('checked', true);
$(this).addClass('selected');
}
if (!$('.form-checkbox', this).is(':checked')) {
$('.form-checkbox', this).prop('checked', false);
$(this).removeClass('selected');
}
*/
});
});