Je travaille sur la validation du formulaire 5 angulaire, mon exigence est lorsque je clique sur soumettre, que la validation du temps ne devrait pas fonctionner sur ng-touch
Réponses:
0 pour la réponse № 1Si vous avez 5+ angulaire, vous pouvez utiliser la nouvelle propriété updateOn:
Quelque chose comme ça:
this.login = new FormGroup({
email: new FormControl(),
password: new FormControl()
}, { updateOn: "submit" });
Angular 5 vous offre maintenant des options pour effectuer des validations sur des événements tels que le flou d'un contrôle ou la soumission d'un formulaire à l'aide de cette propriété.
Lis ici
Si vous souhaitez un comportement différent pour un champ particulier (dans l'exemple ci-dessous: email), vous pouvez procéder de la manière suivante:
this.login = new FormGroup({
email: new FormControl(null, {
validators: Validators.required,
updateOn: "blur"
}),
password: new FormControl(null, [Validators.required])
}, {updateOn: "submit"})
0 pour la réponse № 2
Si vous utilisez Angular2 / 4, alors vous pouvez essayer ceci
dans votre composant
submitted: boolean = false;
ngOnInit() {
this.myForm = new FormGroup({
name: new FormControl("", [<any>Validators.minLength(5)]),
});
}
save(){
this.submitted =true;
if(this.myForm.invalid){
return;
}
// Here write your code for processing
}
Dans votre template
<form [formGroup]="myForm" novalidate (ngSubmit)="save()">
<label>Name</label>
<input type="text" formControlName="name">
<small *ngIf="!myForm.controls.name.valid && submitted">
Enter minimum 5 characters for name.
</small>
<button type="submit">Submit</button>
</form>