首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >道布角反应形式的验证

道布角反应形式的验证
EN

Stack Overflow用户
提问于 2018-01-23 04:48:51
回答 2查看 8.2K关注 0票数 5

我试图验证出生日期角2+反应形式。当选定的道布日期超过100岁时,我想显示错误消息。

前端

代码语言:javascript
复制
 <div [ngClass]="setClassDOB()">
 <input class="form-control" type="date"name="dob"formControlName="dob" placeholder="DOB">
 </div>
EN

回答 2

Stack Overflow用户

发布于 2018-01-23 05:17:11

把这个放进你的打字本

代码语言:javascript
复制
  validateDOB(e){
    let year = new Date(e).getFullYear();
    let today = new Date().getFullYear();
    if(today - year >= 100){
      //Code Something
    }
  }

在html中更新这个

代码语言:javascript
复制
<input class="form-control" (change)="validateDOB(dob)" type="date" name="dob" formControlName="dob" placeholder="DOB">

(这可能对你有帮助:)

票数 0
EN

Stack Overflow用户

发布于 2020-01-10 12:12:21

您必须创建一个自定义表单验证器来实现此目的。

  1. 创建自定义验证器,该验证器接受maxAge并返回validatorFn
代码语言:javascript
复制
const youngerThanValidator = (maxAge: number): ValidatorFn => control =>
  (new Date()).getFullYear() - (new Date(control.value)).getFullYear() > maxAge 
    ? { younger: { maxAge } } 
    : null;
  1. 在你的反应形式中使用它
代码语言:javascript
复制
form = new FormGroup({
  dob: new FormControl(null, youngerThanValidator(100))
});
  1. 当输入被触摸且无效时,在模板中显示错误
代码语言:javascript
复制
<form [formGroup]="form">
  <input type="date" formControlName="dob">
  <span *ngIf="form.get('dob').touched && form.get('dob').getError('younger') as error">
    Too old : {{ error.maxAge }}
  </span>
</form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48394438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档