Fix saving of XFA checkboxes. (bug 1726381)

Previously were were always setting the storage value to the on value.
This commit is contained in:
Brendan Dahl 2021-08-24 15:53:55 -07:00
parent 56e7bb626c
commit 6d2193a812
2 changed files with 8 additions and 3 deletions

View File

@ -1265,8 +1265,8 @@ class CheckButton extends XFAObject {
field.items.children[0][$toHTML]().html) ||
[];
const exportedValue = {
on: (items[0] || "on").toString(),
off: (items[1] || "off").toString(),
on: (items[0] !== undefined ? items[0] : "on").toString(),
off: (items[1] !== undefined ? items[1] : "off").toString(),
};
const value = (field.value && field.value[$text]()) || "off";
@ -1296,6 +1296,7 @@ class CheckButton extends XFAObject {
type,
checked,
xfaOn: exportedValue.on,
xfaOff: exportedValue.off,
"aria-label": ariaLabel(field),
},
};

View File

@ -42,7 +42,11 @@ class XfaLayer {
break;
}
html.addEventListener("change", event => {
storage.setValue(id, { value: event.target.getAttribute("xfaOn") });
storage.setValue(id, {
value: event.target.checked
? event.target.getAttribute("xfaOn")
: event.target.getAttribute("xfaOff"),
});
});
} else {
if (storedData.value !== null) {