1 | export const updateFormControl = (node, value) => {
|
2 | if (node.nodeName === "SELECT") {
|
3 | Array.from(node.querySelectorAll("option")).forEach((option) => {
|
4 | option.selected = value.includes(option.value)
|
5 | })
|
6 | return
|
7 | }
|
8 |
|
9 | let checked
|
10 |
|
11 | switch (node.getAttribute("type")) {
|
12 | case "checkbox":
|
13 | checked = value
|
14 | if (node.checked === checked) break
|
15 | if (checked) {
|
16 | node.setAttribute("checked", "")
|
17 | } else {
|
18 | node.removeAttribute("checked")
|
19 | }
|
20 | break
|
21 | case "radio":
|
22 | checked = value === node.getAttribute("value")
|
23 | if (node.checked === checked) break
|
24 | node.checked = checked
|
25 | if (checked) {
|
26 | node.setAttribute("checked", "")
|
27 | } else {
|
28 | node.removeAttribute("checked")
|
29 | }
|
30 | break
|
31 | default:
|
32 | if (node.value === value) break
|
33 | node.setAttribute("value", (node.value = value || ""))
|
34 | break
|
35 | }
|
36 | }
|