1 |
|
2 | export 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 |
|
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 |
|
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 | };
|