[Angular 4] Validation de formulaire
Bonjour,
J'ai un problème de validation automatique d'un champ input sous Angular 5.
Je modifie la classe de l'input via une fonction getClass() qui en fonction d'une validation retourne ng-valid ou ng-invalid.
Problème, je pense que la validation automatique du formulaire se fait également et met ng-valid alors que je retourne ng-invalid lorsque mon url commence par un espace.
Une idée comment résoudre ce problème?
Peut on désactiver la validation automatique du formulaire?
Voici mon code
Template:
Code:
1 2 3 4 5 6 7
| <input
type="text"
auto-focus
[ngClass]="getClass()"
[(ngModel)]="formObject.libelle"
name="libelle"
placeholder="URL"/> |
Code:
Code:
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
| getClass() {
if (this.validate()) {
return 'ng-valid ng-dirty ng-touched form-control';
} else {
return 'ng-invalid ng-dirty ng-touched form-control';
}
}
validate() {
if (!this.formObject || !this.formObject.libelle) {
this.errorMessage = '';
return false;
}
if ((new RegExp('^\\s')).test(this.formObject.libelle)) {
this.errorMessage = 'Espace non autorisé en début d\'URL';
return false;
}
if ((new RegExp('\\s$')).test(this.formObject.libelle)) {
this.errorMessage = 'Espace non autorisé en fin d\'URL';
return false;
}
this.errorMessage = '';
return true;
} |