Website-Suche

angular - Wert aus Eingabefeld löschen


Wie kann ich den Eingabewert löschen, wenn ich das Kontrollkästchen deaktiviere?

 <mat-checkbox color="primary" formControlName="checkBox"></mat-checkbox>
 <input formControlName="input" type="text"/>

Also möchte ich einen Wert aus TypeScript löschen. Wie kann ich das tun?

Ich versuche dies :

private clearInput(): void {
    if (this.formGroup.controls.checkBox.value === false) {
      this.formGroup.controls.input.setValue(null);
    }
  }

aber das funktioniert nicht.

Antwort #1

Eine mögliche Lösung könnte die folgende sein:

  • Ändern Sie Ihr HTML zu:
<mat-checkbox 
  color="primary" 
  formControlName="checkBox"
  (change)="clearInput($event, inputId)">
</mat-checkbox>
<input #inputId formControlName="input" type="text"/>

Der change-Ereignis-Emitter benachrichtigt Sie, wenn sich der Wert des Kontrollkästchens geändert hat.

Wenn sich der Wert des Kontrollkästchens ändert, wird die Methode clearInput aufgerufen.

Das erste Argument ist das Ereignis selbst, $event, das laut der Dokumentation vom Typ MatCheckboxChange ist.

Das 2º Argument ist der Verweis auf das <input>.

  • Ändere die ts zu:
clearInput(checkboxChange: MatCheckboxChange, input: HTMLInputElement): void {
  if (!checkboxChange.checked) { input.value = '' }
}

Dies wird Ihr Eingabefeld nur löschen, wenn das Kontrollkästchen auf nicht ausgewählt geändert wird.