אז בהמשך למדריך על 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).
מאמין שיש עוד פתרונות לנושא (תאמת שחיפשתי וזו הייתה נראית לי הכי מגניבה 🐊)
מי שרוצה בכייףףף מוזמן לשתף רעיונות נוספים, בנתיים תהנו מהפתרון שלי . בהצלחה 😘





