Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
No obtengo el retorno de la validación cruzada a formularios basados en plantillas

Estoy tratando de ser true para regresar cuando las contraseñas no son las mismas.

mi componente

 this.restrict = new FormGroup({ email: new FormControl(this.user.email), newPassword: new FormControl ('', [Validators.required, Validators.pattern('(?=\\D*\\d)(?=[^az]*[az])(?=[^AZ]*[AZ]).{6,30}')]), confirmPassword: new FormControl(null, [Validators.required, Validators.minLength(6)]), }, {validators: this.pwdMatchValidator}); get newPassword() { return this.restrict.get('newPassword');} get confirmPassword() { return this.restrict.get('confirmPassword');} pwdMatchValidator(frm: FormGroup) { let pass = frm.get('newPassword').value; let confirmPass = frm.get('confirmPassword').value; console.log(pass); console.log(confirmPass); return pass === confirmPass ? null: { notSame: true}; }

en la plantilla que tengo

 <p-password formControlName="confirmPassword"></p-password> <small class="p-error" *ngIf="confirmPassword.hasError('required')">No puede estar vacio</small> <small class="p-error" *ngIf="confirmPassword.hasError('minlength')">Debe ser de hasta 6 caracteres.</small> <small class="p-error" *ngIf="confirmPassword.hasError('notSame', 'passwords')">Las contraseñan son diferentes.</small> <button pButton pRipple label="Save" icon="pi pi-check" class="p-button-text" [disabled]="!restrict.valid"></button>

Actualmente la respuesta que obtengo siempre es false .

El concole.log(pass); y console.log(confirmPass); funcionan y el botón Guardar aún está deshabilitado porque el campo no se validó, entonces, ¿cómo puedo obtener notSame ? Lo intenté:

 {{ restrict.get('confirmPassword').errors?.notSame }} {{ restrict.get('confirmPassword').errors }} {{ confirmPassword.hasError('notSame') }}

En ejemplos angulares, muestran una forma que en mi caso (angular 12) no funciona

En la documentación de Angular no puedo encontrar un concepto satisfactorio de cómo manejar las devoluciones, ¿podría explicarlo?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su validador está configurado en FormGroup , no en el control de confirmPassword , por lo que la verificación que debe hacer es en realidad en el formulario principal:

 <small ngIf="restrict.hasError('notSame')">...</small>

Apilar

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda