0
votes

Confirmation de mot de passe à l'aide de validateurs personnalisés angulaires

J'ai un champ de mot de passe ainsi qu'un champ de mot de passe de confirmation et tout fonctionne bien si vous remplissez le formulaire de haut en bas. Toutefois, si je mets dans la confirmation de mot de passe / mot de passe, puis retournez pour modifier le champ Mot de passe, le champ de confirmation reste 'valide' à moins que je ne le modifie à nouveau pour déclencher le validateur personnalisé pour "vérifier si les mots de passe correspondent à"

formes.component.ts - Le formulaire obtient sa "mise en page" SO-TO-Parlez de register.component.ts. C'est ainsi que je peux construire de manière dynamique des formulaires. xxx

formulaire.component.html xxx

register.component.ts - Je n'ai pas pu comprendre comment transmettre le validateur personnalisé pour le champ Confirmer le mot de passe, donc je viens de passer des validateurs.Required, mais cela est simplement écrasé avec un validateur personnalisé lorsque la Le formulaire est construit. xxx

Merci d'avance pour votre aide.


0 commentaires

3 Réponses :


0
votes

Vous devez ajouter une validation à Formgroup pas sur le champ.
Un exemple: xxx


2 commentaires

Salut Tano. Je n'utilise pas la classe Formbuilder puisque je ne pouvais pas comprendre comment construire dynamiquement le formulaire si je l'ai utilisé. Je ne comprends pas bien pourquoi ne devrait pas avoir de validateurs sur les champs eux-mêmes plutôt que le groupe de formes. Lecture de la documentation On dirait que les validateurs sont placés sur les commandes de formulaire et ces contrôles de formulaire sont ajoutés à un groupe de formes. Pourriez-vous s'il vous plaît élaborer?


Si vous souhaitez valider un seul contrôle, vous devez ajouter à ce contrôle, si vous souhaitez valider plus de contrôles, vous devez ajouter le validateur au groupe ou ajouter le même validateur à chaque contrôle unique qui est lié à la règle de validation. .



0
votes

Je voulais juste ajouter une solution possible et une solution de contournement pour que quiconque tente de construire des formes similaires.

J'ai mis à jour mon formes.component.html Pour appeler une fonction sur (Keyup). < / p> xxx

dans mon formulaire.component.ts J'ai ajouté une simple fonction checkPasswordsmatch qui définit manuellement les erreurs pour le champ Confirmer le mot de passe lorsque le champ Mot de passe est modifié. S'ils ne correspondent plus. Voir la dernière fonction ci-dessous: xxx

car toutes ces entrées font partie du même groupe de formes, le formulaire n'est valide que lorsque toutes les entrées sont valides. Modification du mot de passe Une fois que le champ de confirmation de mot de passe a été validé causera le checkpasswordsmatch () pour exécuter et définir les erreurs manuellement pour le champ de confirmation si elles ne le font pas.


0 commentaires

0
votes

Essayez cette solution que vous avez besoin de la bibliothèque de validation NG2 pour cette

import { CustomValidators } from 'ng2-validation';
const password = new FormControl('', [Validators.required, Validators.pattern('^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}$')]);
const confirmPassword = new FormControl('', [Validators.required, CustomValidators.equalTo(password)]);
this.form = this.fb.group({
      password: password,
      confirmPassword: confirmPassword,
    });


0 commentaires