如何解决如何以角度反应形式强制一个日期大于另一个日期? 表单生成器
我有以下反应形式:
newTripForm = this.formBuilder.group({
name: new FormControl('',Validators.compose([Validators.required,Validators.minLength(3)])),startDate: new FormControl('',Validators.required),endDate: new FormControl(''),});
如何添加一个验证器来强制 endDate 大于 startDate?另外,有没有办法检查 startDate 和 endDate 是日期?我没有找到任何验证器?
非常感谢(也很抱歉回答菜鸟问题)
解决方法
您目前使用的验证器是 FormControl
-验证器。它们验证单个 FormControl
。您还可以自己编写一个验证器来验证 FormArray
或 FormGroup
。
验证器看起来像这样:
dateOrderValidator(formGroup: FormGroup): ValidationErrors | null {
const startDate = formGroup.controls['startDate']?.value;
const endDate = formGroup.controls['endDate']?.value;
// validate date-strings
// catch missing values
if (Date.parse(startDate).getTime() >= Date.parse(endDate).getTime)) {
// return an appropriate error
}
}
表单生成器
FormBuilder 的主要目的是为我们节省一些样板文件。代替
name: new FormControl(...)
我们可以写
name: ['initialValue',[<synchronous validators>],[<asynchronous validators]]
甚至更少(如果我们没有验证器):
name: 'initialValue'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。