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

411
Vistas
Angular 2 fuerza la validación personalizada en keyup

tengo este codigo:

 this.form = fb.group({ username: ['', Validators.compose([Validators.required])], fullName: ['', Validators.compose([Validators.required])], password: ['', Validators.compose([Validators.required])], confirmPassword: ['', Validators.required], }, {validator: matchingPasswords('password', 'confirmPassword')});

Contraseñas coincidentes:

 export function matchingPasswords(passwordKey: string, passwordConfirmationKey: string) { return (group: FormGroup) => { let password = group.controls[passwordKey]; let passwordConfirmation = group.controls[passwordConfirmationKey]; if (password.value !== passwordConfirmation.value) { return passwordConfirmation.setErrors({mismatchedPasswords: true}) } }

}

html:

 <div class="form-group"> <input [formControl]="confirmPassword" class="form-control checking-field" type="password"> <span class="help-block text-danger" *ngIf="form.get('password').touched && form.get('password').hasError('required')"> </div> <div class="form-group"> <input class="custom-control-input checkbox-main" type="checkbox" [(ngModel)]="policyButtonValue" [ngModelOptions]="{standalone: true}" ngDefaultControl> <span class="custom-control-indicator"></span> </div>

esto es funcional y funciona perfectamente, pero tengo un caso de uso especial que debería solucionarse.

  1. haga clic en el primer campo de contraseña.
  2. complete una contraseña, por ejemplo: "foo"
  3. haga clic en el campo de confirmación de contraseña.
  4. tpye en lo mismo, ej.:"foo" ingrese la descripción de la imagen aquíhasta este punto, sin problemas.
  5. escriba algo diferente en el campo de confirmación de contraseña, por ejemplo: "foobar" (en este punto, el validador muestra que hay un error aquí) ingrese la descripción de la imagen aquí
  6. haga clic en el campo de contraseña
  7. escriba lo mismo que está en el campo de contraseña: "foobar" y aquí, el campo de confirmación de contraseña sigue siendo inválido, hasta que el campo de contraseña pierde el foco... ingrese la descripción de la imagen aquí¿Hay alguna manera de forzar la ejecución de la validación de la contraseña coincidente en el evento keyup, en lugar de cómo funciona ahora?
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Necesitas un bloque else :

 if (password.value !== passwordConfirmation.value) { passwordConfirmation.setErrors({mismatchedPasswords: true}) } else { passwordConfirmation.setErrors(null); }
about 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