Angular 角反应形式的DOB验证
我正在尝试以角度2+反应形式验证出生日期。我想在所选DOB日期超过100年时显示错误消息 前端侧Angular 角反应形式的DOB验证,angular,angular2-forms,angular-reactive-forms,angular4-forms,Angular,Angular2 Forms,Angular Reactive Forms,Angular4 Forms,我正在尝试以角度2+反应形式验证出生日期。我想在所选DOB日期超过100年时显示错误消息 前端侧 <div [ngClass]="setClassDOB()"> <input class="form-control" type="date"name="dob"formControlName="dob" placeholder="DOB"> </div> 将其放入您的脚本中 validateDOB(e){ let year = new Dat
<div [ngClass]="setClassDOB()">
<input class="form-control" type="date"name="dob"formControlName="dob" placeholder="DOB">
</div>
将其放入您的脚本中
validateDOB(e){
let year = new Date(e).getFullYear();
let today = new Date().getFullYear();
if(today - year >= 100){
//Code Something
}
}
在html中更新此内容
<input class="form-control" (change)="validateDOB(dob)" type="date" name="dob" formControlName="dob" placeholder="DOB">
这可能会帮助您:)您必须创建一个自定义表单验证程序来实现这一点
const youngerThanValidator=(maxAge:number):ValidatorFn=>control=>
(新日期()).getFullYear()-(新日期(control.value)).getFullYear()>maxAge
? {年轻:{maxAge}}
:null;
form=newformgroup({
dob:新FormControl(空,youngerThanValidator(100))
});
太旧:{error.maxAge}
`validateDOB(e){let year=new Date(e).getFullYear();let today=new Date().getFullYear();if(today-year>=100){return{'has danger':!this.dob.pristine&&!this.dob.valid};}`我做了这个但不工作了你能分享你的编码吗?不工作了,首先,这一年可以让你永远输入数字——当然它说的是“编写一些代码”,但这应该是解决方案的一部分这在第一个值集上起作用,但随后control.value总是空的