Ich bin dabei, einige grundlegende E-Mail-Validierung hinzufügen, um zu überprüfen, dass der Benutzer eine korrekte E-Mail-Adresse eingegeben hat. Wenn Sie die unten beschriebene Methode verwenden, wird die Validierung aktualisiert, wenn der Benutzer eingibt, was merkwürdig aussieht, wenn nach der Eingabe eines Zeichens ein Fehler auftritt.Angular2 - FormControl Validierung auf Unschärfe
validEmail(c: Control){
if(!c.value.match('[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?')){
return {
validEmail: true
};
}
return null;
}
ctrlEmailAddress: Control = new Control('', Validators.compose([
Validators.required, this.validEmail]));
ich mich gefragt, ob es möglich ist, die Validierung auf Unschärfe des Feldes auslösen, wie in AngularJS mit:
ng-model-options="{ updateOn: 'blur' }"
Ich bin mir bewusst, die Unschärfe Option auf dem Eingabefeld innerhalb der html, aber das bringt mein Steuerelement nicht in Fehler, außer es gibt eine Möglichkeit, das Steuerelement in einen Fehlerzustand zu versetzen.
Könnte mir jemand helfen, mich in die richtige Richtung zu weisen?
Danke.
Edit: Ich bin auf der Suche nach einer angular2 Lösung, keine angularJS Lösung.
Dies wird nicht beim nächsten Mal helfen, wenn Element den Fokus erhalten. name.focus erhält seinen wahren Wert bei der ersten Berührung und beim zweiten Mal - der Validierungsindikator wird bei jedem Tastendruck nicht mehr angezeigt. – user2783091