Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了关键字的Angular 2强制自定义验证大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个@L_944_1@:

this.form = fb.group({
        username: ['',Validators.compose([Validators.required])],fullName: ['',password: ['',confirmpassword: ['',Validators.required],},{validator: matchingpasswords('password','confirmpassword')});
@H_144_5@matchingpasswords:

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>

这是功能性的,并且运行良好,但我有一个特殊的用例场景应该修复.

>单击第一个密码字段.
>填写密码,例如:“foo”
>单击确认密码字段.
> tpye同样的事情,例如:“foo”

关键字的Angular 2强制自定义验证


直到这一点,没有问题.
>在确认密码字段中键入不同的内容,例如:“foobar”
(此时,验证器显示此处存在错误)

关键字的Angular 2强制自定义验证


>单击密码字段
>输入密码字段中的相同内容:“foobar”
在这里,确认密码字段仍然无效,直到密码字段失去焦点…

关键字的Angular 2强制自定义验证


有没有办法,强制matchuppassword验证在keyup事件上运行,而不是现在如何工作?

@H_262_39@解决方法
你需要一个else块:

if (password.value !== passwordConfirmation.value) {
    passwordConfirmation.setErrors({mismatchedpasswords: truE})
}
else {
    passwordConfirmation.setErrors(null);
}

大佬总结

以上是大佬教程为你收集整理的关键字的Angular 2强制自定义验证全部内容,希望文章能够帮你解决关键字的Angular 2强制自定义验证所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。