浏览代码

Fix checkbox field handling

Kirk Trombley 2 年之前
父节点
当前提交
65cedc9629
共有 1 个文件被更改,包括 5 次插入4 次删除
  1. 5 4
      framework.js

+ 5 - 4
framework.js

@@ -232,9 +232,10 @@ const U = (() => {
     // U.field("idOrElem", config);
     field(fieldOrId, { allowInvalidInput = false, obs, ...config } = {}) {
       const fieldElement = getElement(fieldOrId);
+      const valueKey = fieldElement.type === "checkbox" ? "checked" : "value";
       const fieldObs =
         obs ||
-        createObservable(fieldElement.value, {
+        createObservable(fieldElement[valueKey], {
           name: fieldElement.name,
           ...config,
         });
@@ -245,12 +246,12 @@ const U = (() => {
           fieldElement.willValidate &&
           !fieldElement.validity.valid
         ) {
-          fieldElement.value = fieldObs.value;
+          fieldElement[valueKey] = fieldObs.value;
         } else {
-          fieldObs.value = fieldElement.value;
+          fieldObs.value = fieldElement[valueKey];
         }
       });
-      this.reactive(() => (fieldElement.value = fieldObs.value));
+      this.reactive(() => (fieldElement[valueKey] = fieldObs.value));
       return fieldObs;
     },
   };