diff --git a/src/components/select/Select.js b/src/components/select/Select.js index 828d5a01d0..be127bdf14 100644 --- a/src/components/select/Select.js +++ b/src/components/select/Select.js @@ -1455,7 +1455,7 @@ export default class SelectComponent extends ListComponent { return super.normalizeValue(this.normalizeSingleValue(value)); } - setMetadata(value) { + setMetadata(value, flags = {}) { if (_.isNil(value)) { return; } @@ -1491,16 +1491,23 @@ export default class SelectComponent extends ListComponent { _.set(submission.metadata.selectData, this.path, templateData); } + if (flags.resetValue && this.root?.submission) { + const submission = this.root.submission; + if (!submission.metadata) { + submission.metadata = {}; + } + submission.metadata.selectData = {}; + } } updateValue(value, flags) { const changed = super.updateValue(value, flags); - if (changed || !this.selectMetadata) { + if (changed || !this.selectMetadata || flags.resetValue) { if (this.component.multiple && Array.isArray(this.dataValue)) { - this.dataValue.forEach(singleValue => this.setMetadata(singleValue)); + this.dataValue.forEach(singleValue => this.setMetadata(singleValue, flags)); } else { - this.setMetadata(this.dataValue); + this.setMetadata(this.dataValue, flags); } } return changed;