אז בהמשך למדריך על reactive forms באנגולר . אביא פה עוד תוספת קטנה , שימושית אם לומר את האמת, אבל לא כזו טריוויאלית. אבל דיי בקלות עונה על השאלה: "איך אפשר לבדוק את השדות חובה של הטופס בלחיצה על איך לבדוק שדות עם ולידציה בלחיצה על submit"
והתשובה נמצאת בקטע הקוד הבא:
@Component({ selector: 'app-general-reactive-form', templateUrl: './general-reactive-form.component.html', styleUrls: ['./general-reactive-form.component.scss'], animations: [inputInAnimation] }) export class GeneralReactiveFormComponent implements OnInit { public form: FormGroup; constructor(private fb: FormBuilder) { } public ngOnInit(): void { this.form = this.fb.group({ fullName: ['', Validators.required], mail: ['', [Validators.required, Validators.email]], phone: ['', Validators.pattern('[0-9]{7,20}')], message: ['', Validators.required], }) } public onSubmit(): void { if (this.form.valid) { console.log('form is valid); }else { Object.keys(this.form.controls).forEach((field: string) => { const control: AbstractControl = this.form.get(field); control.markAsTouched({ onlySelf: true }); }); } } }
החלק האומנותי הוא לקחת את כל השדות שלכם ולסמלץ מקרה של touch באינפוט . ואז בהתאמה חיווי הולידציות שלכם יצוצו (שכמובן ייעדתם חיווי ולדיציות בUI על מקרה של touch).
מאמין שיש עוד פתרונות לנושא (תאמת שחיפשתי וזו הייתה נראית לי הכי מגניבה 🐊)
מי שרוצה בכייףףף מוזמן לשתף רעיונות נוספים, בנתיים תהנו מהפתרון שלי . בהצלחה 😘