ตัวอย่าง validators ใน angular

Validators ใน Angular เป็นฟังก์ชันที่ใช้ในการตรวจสอบความถูกต้องของข้อมูลในฟอร์ม

มี validators ในตัวหลายตัวที่คุณสามารถใช้ได้ รวมถึง:

  • required: ตรวจสอบว่าค่าไม่ว่าง
  • minlength: ตรวจสอบว่าค่ามีความยาวอย่างน้อยจำนวนที่กำหนด
  • maxlength: ตรวจสอบว่าค่ามีความยาวไม่เกินจำนวนที่กำหนด
  • email: ตรวจสอบว่าค่าเป็นที่อยู่อีเมลที่ถูกต้อง
  • pattern: ตรวจสอบว่าค่าตรงกับรูปแบบที่กำหนด
  • min: ตรวจสอบว่าค่ามากกว่าหรือเท่ากับจำนวนที่กำหนด
  • max: ตรวจสอบว่าค่าน้อยกว่าหรือเท่ากับจำนวนที่กำหนด

นอกจาก validators ในตัวแล้ว คุณยังสามารถสร้าง validators ที่กำหนดเองได้อีกด้วย

ต่อไปนี้เป็นตัวอย่างของวิธีใช้ validators ในตัว:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { Component, OnInit } from '@angular/core';
import { FormBuilder } from '@angular/forms';

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

constructor(private fb: FormBuilder) {}

ngOnInit() {
// Create a form with two fields, one for the name and one for the email address.
const form = this.fb.group({
name: ['', [Validators.required]],
email: ['', [Validators.required, Validators.email]]
});

// Subscribe to the form's validity change event.
form.valueChanges.subscribe((value) => {
// Check if the form is valid.
if (form.valid) {
// The form is valid, do something.
} else {
// The form is invalid, display errors.
}
});
}

}

ในตัวอย่างนี้ เราสร้างฟอร์มที่มีสองฟิลด์: หนึ่งสำหรับชื่อและหนึ่งสำหรับที่อยู่อีเมล เราใช้ validators ในตัวเพื่อตรวจสอบว่าฟิลด์เหล่านี้ถูกต้อง

เมื่อผู้ใช้ป้อนข้อมูลลงในฟอร์ม ฟอร์มจะตรวจสอบความถูกต้องของข้อมูลและแสดงข้อผิดพลาดหากจำเป็น

ต่อไปนี้เป็นตัวอย่างของวิธีใช้ validators ที่กำหนดเอง:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { Component, OnInit } from '@angular/core';
import { FormBuilder } from '@angular/forms';

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

constructor(private fb: FormBuilder) {}

ngOnInit() {
// Create a form with one field for a password.
const form = this.fb.group({
password: ['', [Validators.required, this.passwordValidator]]
});

// Subscribe to the form's validity change event.
form.valueChanges.subscribe((value) => {
// Check if the form is valid.
if (form.valid) {
// The form is valid, do something.
} else {
// The form is invalid, display errors.
}
});
}

// A custom validator that checks if the password is at least 8 characters long.
passwordValidator(control: FormControl) {
// Check if the password is at least 8 characters long.
if (control.value.length < 8) {
// The password is not valid, return an error message.
return {
message: 'The password must be at least 8 characters long.'
};
}

// The password is valid, return null.
return null;
}

}

ในตัวอย่างนี้ เราสร้าง validators ที่กำหนดเองเพื่อตรวจสอบว่ารหัสผ่านมีความยาวอย่างน้อย 8 อักขระ

เมื่อผู้ใช้ป้อนรหัสผ่านลงในฟอร์ม validators จะตรวจสอบความถูกต้องของรหัสผ่านและแสดงข้อผิดพลาดหากจำเป็น