diff --git a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
index 2e628b17e00b17153893c8c9d909c99bf90c95e2..6cd713c43da4b1821c5661d3bdc56620e3a37eff 100644
--- a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
+++ b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
@@ -95,7 +95,7 @@ export abstract class KeycloakFormService<T> {
   }
 
   _processInvalidForm(): Observable<StateResource<T>> {
-    // this._showValidationErrorForAllInvalidControls(this.form);
+    this._showValidationErrorForAllInvalidControls(this.form);
     return of(createEmptyStateResource<T>());
   }
 
@@ -112,8 +112,7 @@ export abstract class KeycloakFormService<T> {
   }
 
   _showValidationErrorForAllInvalidControls(control: AbstractControl): void {
-    // if (control.invalid)
-    control.updateValueAndValidity();
+    if (control.invalid) control.updateValueAndValidity();
     if (control instanceof FormGroup || control instanceof FormArray) {
       Object.values(control.controls).forEach((control) => this._showValidationErrorForAllInvalidControls(control));
     }
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-save-button/user-form-save-button.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-save-button/user-form-save-button.component.html
index 064289aa47b5e6ff3e9e37656407d30cd0d52c8d..c38b3871bcc6324394b118055c18a363c9fb56b9 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-save-button/user-form-save-button.component.html
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-save-button/user-form-save-button.component.html
@@ -1,6 +1,5 @@
 <ods-button-with-spinner
   [stateResource]="submitStateResource$ | async"
-  (clickEmitter)="submit()"
   text="Speichern"
   dataTestId="save-button"
 />
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html
index 6b840fbfea6231c914316368d43a70c433484d83..0d9c504aa0471c0081a51cec152f88a187dd92c2 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html
@@ -23,7 +23,7 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<form [formGroup]="formService.form">
+<form [formGroup]="formService.form" (ngSubmit)="onSubmit()">
   <ods-spinner [stateResource]="userStateResource$ | async">
     <div class="max-w-[960px]" data-test-id="user-content">
       <admin-user-form-headline [isPatch]="isPatch" />
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts
index f60e03692eed409a960bdeb3b27caa64b12d1ef9..eee2cb862553ef56050bb09eadb91f73a216ad50 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts
@@ -71,4 +71,8 @@ export class UserFormComponent implements OnInit {
       }),
     );
   }
+
+  onSubmit(): void {
+    this.formService.submit();
+  }
 }
diff --git a/alfa-client/libs/design-component/src/lib/form/formcontrol-editor.abstract.component.ts b/alfa-client/libs/design-component/src/lib/form/formcontrol-editor.abstract.component.ts
index 775483fcac0b16da717e41dfd9632970bfdde5a6..1338796de9248221609af0d806b510ae1806da1b 100644
--- a/alfa-client/libs/design-component/src/lib/form/formcontrol-editor.abstract.component.ts
+++ b/alfa-client/libs/design-component/src/lib/form/formcontrol-editor.abstract.component.ts
@@ -45,20 +45,13 @@ export abstract class FormControlEditorAbstractComponent implements ControlValue
 
     this.changesSubscr = this.fieldControl.valueChanges.subscribe((val) => {
       this.onChange(val);
-      // if (this.control?.control && this.control.control.getRawValue() !== this.fieldControl.value) {
-      //   this.control.control.setValue(this.fieldControl.value, { emitEvent: false });
-      // }
-      this.fieldControl.setErrors(null);
-      this.invalidParams = [];
+      this.removeErrors();
     });
   }
 
   ngOnInit(): void {
     if (!this.statusSubscr && this.control)
       this.statusSubscr = this.control.statusChanges.subscribe(() => {
-        this.onChange(this.fieldControl.value);
-        this.fieldControl.updateValueAndValidity({ emitEvent: false });
-        this.control.control.updateValueAndValidity({ emitEvent: false });
         this.setErrors();
       });
   }
@@ -98,6 +91,11 @@ export abstract class FormControlEditorAbstractComponent implements ControlValue
     }
   }
 
+  removeErrors(): void {
+    this.fieldControl.setErrors(null);
+    this._updateInvalidParams();
+  }
+
   _updateInvalidParams(): void {
     this.invalidParams =
       this.fieldControl.errors ?