diff --git a/lib/core/src/lib/form/components/widgets/core/form-field-validator.spec.ts b/lib/core/src/lib/form/components/widgets/core/form-field-validator.spec.ts index a5dae7a66e..fb50958f23 100644 --- a/lib/core/src/lib/form/components/widgets/core/form-field-validator.spec.ts +++ b/lib/core/src/lib/form/components/widgets/core/form-field-validator.spec.ts @@ -113,6 +113,18 @@ describe('FormFieldValidator', () => { expect(validator.validate(field)).toBe(false); }); + it('should fail for dropdown with empty object', () => { + const field = new FormFieldModel(new FormModel(), { + type: FormFieldTypes.DROPDOWN, + value: {}, + required: true, + options: [{ id: 'one', name: 'one' }], + selectionType: 'multiple' + }); + + expect(validator.validate(field)).toBe(false); + }); + it('should fail for radio buttons', () => { const field = new FormFieldModel(new FormModel(), { type: FormFieldTypes.RADIO_BUTTONS, diff --git a/lib/core/src/lib/form/components/widgets/core/form-field-validator.ts b/lib/core/src/lib/form/components/widgets/core/form-field-validator.ts index c939f4b403..6a8a5005e1 100644 --- a/lib/core/src/lib/form/components/widgets/core/form-field-validator.ts +++ b/lib/core/src/lib/form/components/widgets/core/form-field-validator.ts @@ -69,6 +69,10 @@ export class RequiredFieldValidator implements FormFieldValidator { return false; } } + + if (field.required && typeof field.value === 'object' && field.value && !Object.keys(field.value).length) { + return false; + } } if (field.type === FormFieldTypes.RADIO_BUTTONS) {