How can i use the touched and valid properties using reactive forms in angular 4. I've used in template driven forms and you can just put this <span class="text-muted" *ngIf="!fname.valid && fname.touched"> Please enter a valid first name</span> below the input field. I've also learned that reactive forms would be better since you have to write the logic in the component.ts. So i want it to implement in the reactive form and i'm stuck on how to use the touched and valid properties. html <form [formGroup]="form" (ngSubmit)="onSignIn(form)"> <div class="form-group"> <input type="text" class="form-control" id="email" placeholder="Enter email" formControlName="email"> </div> <div class="form-group"> <input type="password" class="form-control" id="password" placeholder="Password" formControlName="password"> </div><button class="btn btn-primary btn-block" type="submit" [disabled]="!form.valid">Sign In</button> </form> ts ngOnInit() { this.form = this.formBuilder.group({ email: [null, [Validators.required, Validators.email]], password: [null, Validators.required], }); } onSignIn(form: FormGroup){ const email = form.value.email; const password = form.value.password; this.authService.loginUser(email, password) .subscribe( data => { this.router.navigate(['/settings']); alert("Login Successful"); console.log(data); }, error => { alert("Invalid Email or Password"); console.log(error); }); } Continue reading...