UNPKG

919 BJavaScriptView Raw
1export 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}