UNPKG

1.91 kBJavaScriptView Raw
1
2export const Checkbox = {
3
4 create(container_class, custom_checkbox_class, checked_class) {
5 document.getElementsByClassName(container_class).forEach((container) => {
6 var custom_cb = container.getElementsByClassName(custom_checkbox_class)[0];
7 if (custom_cb !== undefined) {
8 // container is for custom checkbox, get input
9 var input = container.getElementsByTagName('input')[0];
10
11 // if input is checked by default but don't have checked_class, add it
12 if (input.checked && !custom_cb.classList.contains(checked_class)) {
13 custom_cb.classList.add(checked_class);
14 //input.value = 1;
15 } /*else if (!input.checked) {
16 input.value = 0;
17 }*/
18
19 // add handler to toggle checked_class when input is checked/unchecked
20 input.addEventListener('change', () => {
21 if (input.checked) {
22 custom_cb.classList.add(checked_class);
23 //input.value = 1;
24 } else {
25 custom_cb.classList.remove(checked_class);
26 //input.value = 0;
27 }
28 });
29 }
30 });
31 },
32
33 uncheck(node, container_class, custom_checkbox_class, checked_class) {
34 const customCheckboxContainers = node.getElementsByClassName(container_class);
35 [].forEach.call(customCheckboxContainers, checkboxContainer => {
36 const input = checkboxContainer.getElementsByTagName('input')[0];
37 input.checked = false;
38 checkboxContainer.classList.remove(checked_class);
39 const checkbox = checkboxContainer.getElementsByClassName(custom_checkbox_class)[0];
40 checkbox.classList.remove(checked_class);
41 })
42 }
43
44};