XFA - Choice list has no selected value by default

This commit is contained in:
Calixte Denizet 2021-06-28 22:10:26 +02:00
parent 3f02a46570
commit 1de133a7c9

View File

@ -1046,6 +1046,7 @@ class ChoiceList extends XFAObject {
const displayed = items.children[displayedIndex][$toHTML]().html; const displayed = items.children[displayedIndex][$toHTML]().html;
const values = items.children[saveIndex][$toHTML]().html; const values = items.children[saveIndex][$toHTML]().html;
let selected = false;
const value = (field.value && field.value[$text]()) || ""; const value = (field.value && field.value[$text]()) || "";
for (let i = 0, ii = displayed.length; i < ii; i++) { for (let i = 0, ii = displayed.length; i < ii; i++) {
const option = { const option = {
@ -1056,10 +1057,21 @@ class ChoiceList extends XFAObject {
value: displayed[i], value: displayed[i],
}; };
if (values[i] === value) { if (values[i] === value) {
option.attributes.selected = true; option.attributes.selected = selected = true;
} }
children.push(option); children.push(option);
} }
if (!selected) {
children.splice(0, 0, {
name: "option",
attributes: {
hidden: true,
selected: true,
},
value: " ",
});
}
} }
const selectAttributes = { const selectAttributes = {