Hier sind zwei eckige2 benutzerdefinierte Validierungen, die ich geschrieben habe, funktioniert die erste validateAge, aber die zweite validateDob nicht ... der Unterschied ist die validateAge verwendet die Komponente, die ich bin und ist ein textbasiertes Feld, das zweite muss ein Datumseingabefeld verwenden und den Unterschied zwischen dem heutigen Datum und dem Geburtsdatum finden, um das tatsächliche Alter zu finden und es dann mit dem Altersfeld zu messen. aber etwas nicht stimmt ... irgendwelche IdeenWarum funktioniert meine benutzerdefinierte Validierung in Angular2 nicht?
function validateAge(control: FormControl): { [s: string]: boolean } {
if (parseInt(control.value) <= 0) {
return {invalidAge: true};
}
}
function validateDob(control: FormControl): {[s:string]: boolean}{
var today = new Date();
var calcAge = today - control.value;
if (calcAge != parseInt([{age}])){
return {invalidDate: true}
}
}
Probieren Sie 'Math.floor (calcAge)' in Ihrer Vergleichsaussage. – Feathercrown
Was ist der tatsächliche Wert in control.value? – epascarello
Sorry, control.value ist ein eingegebenes Geburtsdatum ... wie 03/01/1978 ist es –