angular validating form input

เรามาดูวิธีการ validate form ใน angular กันครับ

ใน angular จะใช้ Validators module ในการ validate form เราจะใช้ Validators สำหรับ validate ใน form control

ตัวอย่างโค้ดในการ validate form ในตัวอย่างเราจะ validate require และ email ไปดูตัวอย่างโค้ดกัน

import { FormGroup, FormControl, Validators } from '@angular/forms';

export class MyComponent {
  myForm = new FormGroup({
    name: new FormControl('', Validators.required),
    email: new FormControl('', [Validators.required, Validators.email])
  });
}

เราสามารถ add custom validation ได้ ตามตัวอย่างด้านล่าง

import { FormGroup, FormControl, Validators } from '@angular/forms';

export class MyComponent {
  myForm = new FormGroup({
    name: new FormControl('', Validators.required),
    email: new FormControl('', [Validators.required, Validators.email], this.customValidatorMethod)
  });

  customValidatorMethod(control: FormControl) {
    // validation logic
    return { customError: true };
  }
}

ใน template เราสามารถใช้ hasError เพื่อ get error จากการ validate ได้ ตามตัวอย่างโค้ด

<form [formGroup]="myForm">
  <label>Name:</label>
  <input formControlName="name" type="text">
  <div *ngIf="myForm.get('name').hasError('required') && myForm.get('name').touched">
    Name is required
  </div>

  <label>Email:</label>
  <input formControlName="email" type="email">
  <div *ngIf="myForm.get('email').hasError('required') && myForm.get('email').touched">
    Email is required
  </div>
  <div *ngIf="myForm.get('email').hasError('email') && myForm.get('email').touched">
    Email is not valid
  </div>
  <div *ngIf="myForm.get('email').hasError('customError')">
    custom error message
  </div>
</form>

เรายังสามารถใช้ statusChanges และ valueChanges observables ได้



Copyright © 2023 Devcode Code Example - Powered by www.doesystem.com