我的应用程序中有猫头鹰日期时间选择器,如下所示
<div class="input-group timepicker form-group">
<input [owlDateTime]="arrivalDate" [owlDateTimeTrigger]="arrivalDate" [min]="date" name="ArrivalDate" class="custom-no-validation form-control"
[(ngModel)]="myModel.arrivalDate" required #ArrivalDate="ngModel" >
<owl-date-time #arrivalDate></owl-date-time>
<span class="calander-icon">
<i class="glyphicon glyphicon-calendar"></i>
</span>
<div *ngIf="myFrom.submitted && ArrivalDate.invalid" class="ErrorTxt">
<div *ngIf="ArrivalDate.errors.required && myModel.firstLastArrivalDate">Arrival date is required</div>
</div>
</div>
并在 ts 文件中
if (!form.valid) {
let elements = document.getElementsByClassName("ng-invalid");
if (elements.length > 1) {
(elements[1] as HTMLElement).style.border ='1px solid red';
(elements[1] as HTMLElement).focus();
}
return;
}
添加 [min]="date" 是为了防止用户选择过去的日期,这里的 date 是 ts 文件中的一个变量,用新的 Date() 值初始化。
现在在检索数据之后,如果 myModel.firstLastArrivalDate 中的值是一个过去的日期,而不是 [min] 导致 ng-invalid 添加到输入元素中,
min 只是为了防止用户选择过去的日期,它不应该检查元素值并与当前日期进行比较,即:new Date()
如何防止 min 在输入元素上添加 ng-invalid。