JSFiddle - React, Tailwind, and code Playground
HTML
<div class="controls">
<fieldset id="Group1" name="Group1">
<label><input id="Radio1" name="Radio1" type="radio" value="day" />Days of Week<br /></label>
<label><input id="Radio1" name="Radio1" type="radio" value="month_day" />Days of Month<br /></label>
<label><input id="Radio1" name="Radio1" type="radio" value="work_day" />Workday<br /></label>
</fieldset>
</div>
<fieldset id="Group2" name="Group2">
<select class="form-control" id="days" name="newday[]">
<option value="monday">Monday</option>
<option value="tuesday">Tuesday</option>
<option value="wednesday">Wednesday</option>
<option value="thursday">Thursday</option>
<option value="friday">Friday</option>
<option value="saturday">Saturday</option>
<option value="sunday">Sunday</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="31">31</option>
<option value="wd 1">WD 1</option>
<option value="wd 2">WD 2</option>
<option value="wd 25">WD 25</option>
</select>
</fieldset>
JavaScript
$(function() {
// Group the select's options by the radio they correspond to
var options = {},
radios = $("#Group1 :radio");
options[radios.eq(0).val()] = [];
options[radios.eq(1).val()] = [];
options[radios.eq(2).val()] = [];
$("#Group2 select option").each(function(i, el) {
var e = $(el);
if (i < 7)
options[radios.eq(0).val()].push(e);
else if (i < 10) //38
options[radios.eq(1).val()].push(e);
else
options[radios.eq(2).val()].push(e);
e.remove();
});
// On radio's change, empty the select and append the options that correspond to the selected radio
$("#Group1 :radio").on("change", function() {
$("#Group2 select").empty();
var arr = options[$(this).val()];
for (var i = 0; i < arr.length; i++)
$("#Group2 select").append(arr[i]);
}).filter(":selected").trigger("change");
});