UNPKG

1.38 kBJavaScriptView Raw
1
2export var Radio = {
3 create(radio_container_id, custom_radio_class, checked_class) {
4 var container = null;
5 if (radio_container_id === null) {
6 container = document;
7 } else {
8 container = document.getElementById(radio_container_id);
9 }
10 var custom_radios = container.getElementsByClassName(custom_radio_class);
11 var inputs = container.getElementsByTagName('input');
12
13 var checked_input_index = null;
14
15 for (let k = 0; k < inputs.length; k++) {
16 // set currently checked input index
17 if (inputs[k].checked) {
18 checked_input_index = k;
19 break;
20 }
21 }
22 if (checked_input_index === null) {
23 checked_input_index = 0;
24 }
25
26 // if input is checked by default but don't have checked_class, add it
27 if (!custom_radios[checked_input_index].classList.contains(checked_class)) {
28 custom_radios[checked_input_index].classList.add(checked_class);
29 }
30
31 for (let k = 0; k < inputs.length; k++) {
32 inputs[k].addEventListener('change', () => {
33 custom_radios[checked_input_index].classList.remove(checked_class);
34 checked_input_index = k;
35 custom_radios[k].classList.add(checked_class);
36 });
37 }
38 }
39};