49
votes

I have two inputs:

  • First one on which I apply my custom validator
  • Second one which value I use in my custom validator (it is dynamic and editable)

If I apply my custom validator on the first input, then I focus the second one and change the value - I want to force first inputs re-validation...

At the moment it only re-validates first input when I change the value... Any suggestions?

At the moment when I focus the first input I can access it's reference:

<input
    name="mEnd"
    class="form-control"
    [(ngModel)]="endDate"
       ...
    #endDateInput="ngModel"
    (focus)="clog(endDateInput)"
>

I wonder can I trigger re-validation using the input formControl reference methods?

3
Have you write any code for that ? then please share hereHkachhia

3 Answers

98
votes

You can update the validity of a formControl

form.controls['myControl'].updateValueAndValidity();

12
votes

If you have template-driven form you can access form throw ViewChild decorator:

@ViewChild('myForm') public form: NgForm;

then, validate one field or the whole form group using method mentioned above:

this.form.controls.myControl.updateValueAndValidity();
11
votes

I found this to be much better

this.myForm.markAllAsTouched();