Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
152 views
in Technique[技术] by (71.8m points)

javascript - Custom Validation Mistery

I'm building a custom validation for my form. It's a simple one, it should check if the password and confirm password matches.

The problem is that even thou I believe the logic is correct, I'm getting the opposite of what I want.

initForm() {
        this.registerForm = new FormGroup({
            email: new FormControl('', [Validators.required, Validators.email]),
            password: new FormControl('', [Validators.required]),
            confirmPassword: new FormControl('', [Validators.required])
        }, { validators: this.customValidators });
    }

    customValidators(c: AbstractControl) {
        const mainPass = c.get('password').value;
        const confirmPass = c.get('confirmPassword').value;

        return mainPass === confirmPass ? { status: 'VALID' } : null;
    }

and on my button on the HTML I have this:

<ion-button color="tertiary" type="submit" expand="block" [disabled]="!registerForm.valid">REGISTER</ion-button>

Can anybody help me with this mystery? Thanks


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The condition should be reversed.

customValidators(c: AbstractControl) {
    const mainPass = c.get('password').value;
    const confirmPass = c.get('confirmPassword').value;

    return mainPass === confirmPass ? null : { 'inValid' : true };
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...