Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

410
Visualizações
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 Respostas
Responde à pergunta

0

Necesitas un bloque else :

 if (password.value !== passwordConfirmation.value) { passwordConfirmation.setErrors({mismatchedPasswords: true}) } else { passwordConfirmation.setErrors(null); }
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda