How to set Validator to required if visible?

Viewed 13021

I am wondering how I can set the Validator in the following form to Required, only if the form element is present:

<div *ngIf="form.controls.user.value !== 'Admin' && form.controls.user.value ">
        <label>Role:</label>
        <input type="text" ngControl="role">
</div>

And my form is:

       this.form = this._formBuilder.group({
        user: ['',Validators.required],
        role: ['', Validators.required]
    });
4 Answers

with in template it can be done this way -

<input [(ngModel)]="page.headerImageWidth" [required]="page.isHeaderAvailable">

You should do this.

  • In html add isVisible variable in *ngIf property

      <div *ngIf="isVisible && form.controls.user.value !== 'Admin' && form.controls.user.value ">
          <label>Role:</label>
          <input type="text" ngControl="role">
    
  • In .ts

    this.form = this._formBuilder.group({
          user: ['',Validators.required],
          role: ['', Validators.required]
      });
    
    
    
     if(this.form.controls.user.disabled == true){
      this.isVisible = false;
      }
      else {
      this.isVisible = true;
      }
    
Related