为什么我在尝试禁用日期选择器中的过去日期时会收到验证错误?
Why do I get a validation error when trying to disable past dates in datepicker?
我有一个 reactive form that uses ng-bootstrap's datepicker 作为可选日期字段,我试图通过将 minDate
设置为当前日期来禁用过去的日期。
<div class="input-group">
<input class="form-control" [minDate]="ngdate" placeholder="yyyy-mm-dd" name="dp" formControlName="startDate" ngbDatepicker #d="ngbDatepicker">
<div class="input-group-append">
<button class="btn btn-outline-secondary calendar fa fa-calendar" (click)="d.toggle()" type="button"></button>
</div>
</div>
ngdate: NgbDateStruct = {
year: new Date().getFullYear(),
month: new Date().getMonth() + 1,
day: new Date().getDate()
};
this.registerForm = this.formBuilder.group({
startDate: ['']
});
当我输入一个日期时,它可以正常工作并且今天之前的所有日期都被正确禁用。问题是当我提交表单而不输入日期时,状态为 errors.ngbdate
无效。
我认为发生这种情况是因为我的日期字段一开始是空白的(因为它是一种反应形式)并且没有被初始化。
如何禁用过去的日期,同时防止在用户未输入日期时发生此验证错误?
根据,这可以通过将startDate: ['']
更改为startDate: null
来解决。
我有一个 reactive form that uses ng-bootstrap's datepicker 作为可选日期字段,我试图通过将 minDate
设置为当前日期来禁用过去的日期。
<div class="input-group">
<input class="form-control" [minDate]="ngdate" placeholder="yyyy-mm-dd" name="dp" formControlName="startDate" ngbDatepicker #d="ngbDatepicker">
<div class="input-group-append">
<button class="btn btn-outline-secondary calendar fa fa-calendar" (click)="d.toggle()" type="button"></button>
</div>
</div>
ngdate: NgbDateStruct = {
year: new Date().getFullYear(),
month: new Date().getMonth() + 1,
day: new Date().getDate()
};
this.registerForm = this.formBuilder.group({
startDate: ['']
});
当我输入一个日期时,它可以正常工作并且今天之前的所有日期都被正确禁用。问题是当我提交表单而不输入日期时,状态为 errors.ngbdate
无效。
我认为发生这种情况是因为我的日期字段一开始是空白的(因为它是一种反应形式)并且没有被初始化。
如何禁用过去的日期,同时防止在用户未输入日期时发生此验证错误?
根据startDate: ['']
更改为startDate: null
来解决。