पर मेल खाते हैं या नहीं, मैं यह जांचने की कोशिश कर रहा हूं कि ईमेल फ़ील्ड और पुष्टि करें कि ईमेल फ़ील्ड एक-दूसरे से मेल खाता है या नहीं। यही है, उपयोगकर्ता अपने ईमेल में टाइप करते हैं और फिर उन्हें फिर से पुष्टि करनी होती है। मैं चाहता हूं कि धुंध पर मिलान/सत्यापन हो (जब उपयोगकर्ता प्रवेश करता है या टेक्स्टफील्ड फोकस खो देता है)।जांचें कि ईमेल ब्लर
import {Component, OnInit} from '@angular/core';
import {User} from './user.interface';
import {FormBuilder, FormGroup, ValidatorFn} from '@angular/forms';
@Component({
selector: 'my-email',
templateUrl: '/app/components/profile/email.component.html',
styleUrls:['styles.css'],
})
export class EmailComponent implements OnInit {
public user : User;
Form : FormGroup;
ngOnInit() {
// initialize model here
this.user = {
Email: '',
confirmEmail: ''
}
if(this.Form.valid) {
this.displayErrors = false;
}
}
constructor(fb: FormBuilder, private cookieService: CookieService, private router: Router) {
this.Form = fb.group({
email: [''],
confirmEmail: ['']
},
{
validator: this.matchingEmailsValidator('email', 'confirmEmail')
});
}
save(model: User, isValid: boolean) {
// call API to save customer
//save email
}
matchingEmailsValidator(emailKey: string, confirmEmailKey: string): ValidatorFn {
return (group: FormGroup): {[key: string]: any} => {
let email = group.controls[emailKey];
let confirmEmail = group.controls[confirmEmailKey];
if (email.value !== confirmEmail.value) {
return {
mismatch: true
};
}
};
}
}
यहाँ मेरे विचार है::
यहाँ मेरी ts फ़ाइल है
<form [formGroup]="Form" novalidate (ngSubmit)="Form.valid && save(Form.value, Form.valid)">
<div class="container-fluid">
<div id = "container" class="contain" style="text-align: center">
<div>
<fieldset class="form-group">
<label id = "rounded" class="item item-input .col-md-6 .col-md-offset-3">
<input class="email-address-entry form-control" name="email" type="email" placeholder="[email protected]" formControlName="email" pattern="^(\\w|[0-9.!#$%&’*+/=?^_\`{|}~-])[email protected](\\w|[0-9-])+(?:[.](\\w|[0-9-])+)*$"/>
</label>
<p class="Reenter-your-email">Reenter your email to confirm</p>
<label id = "rounded" class="item item-input">
<input class="email-address-entry form-control" (blur)="displayErrors=true" name="confirmEmail" type="email" placeholder="[email protected]" formControlName="confirmEmail" validateEqual="email"/>
</label>
</fieldset>
</div>
<div>
<label class="entry-invalid">
<p *ngIf="displayErrors && !Form.get('email').valid">The email you entered does not match.</p>
</label>
</div>
<div (click)="Form.get('email').length > 0 ? save(Form.value, Form.valid) : NaN" class="{{ Form.get('email').length > 0 ? 'container-fluid anchorBottomHighlight' : 'container-fluid anchorBottom'}}">
<label class="footerLabel">Confirm</label>
</div>
</div>
</div>
</form>
वर्तमान में, जिस तरह से यह सेट अप के साथ, सत्यापन होता है, लेकिन जब सही मैच है यह मंजूरी दे दी नहीं प्राप्त करता है इनपुट। मैं सोच रहा हूं कि मैं अपना विचार सही तरीके से कैसे स्थापित कर सकता हूं? इसलिए सही मिलान सेट होने पर सत्यापन संदेश दिखाया/छुपाया जाता है।
यह भी लगता है कि Form.get('email').length > 0
0 से अधिक कभी नहीं/कभी हिट नहीं होता है, इसलिए मेरा लेबल क्लिक करने योग्य नहीं है।
मैं कोणीय 2 और प्रतिक्रियाशील रूपों का उपयोग कर रहा हूं।
तुम ऐसा कैसे उपयोग करने के लिए के बारे में अधिक गहराई में पर जाने सका: this.Form.get ('ईमेल') त्रुटियों।? आपके 'मिनी ट्यूटोरियल' के लिए बहुत बहुत धन्यवाद। सुपर सहायक! – Euridice01
ईजी। अगर मैं अपनी टीएस फाइल में कुछ करना चाहता था: अगर (फॉर्म.वालिड) { this.displayErrors = false; } – Euridice01
मैंने आपकी टिप्पणी का जवाब देने के लिए अपना उदाहरण संशोधित किया है। क्या आपको लगता है कि यह जवाब स्वीकार्य उत्तर के रूप में चिह्नित करेगा यदि आपको लगता है कि यह चाल है? – AngularChef