Angular中ejs-timepicker首次输入始终无法通过required校验
Angular Syncfusion Timepicker 首次输入无法通过必填校验问题
背景
在Angular项目中使用ejs-timepicker组件,该组件属于@syncfusion/ej2-angular-calendars库,使用版本为"@syncfusion/ej2-angular-calendars": "19.1.55"。
问题
首次在该字段中输入时间时,始终无法通过必填(required)校验,字段保持无效状态。打印控件所有错误仅输出“required”,说明这是唯一的校验问题。值得注意的是,即使字段已被修改,仍保留ng-pristine类。清空输入框后重新输入时间,校验即可通过。刷新页面后该规律依然存在:若此前清空过一次,刷新后输入可正常通过校验,否则仍会失败。查阅了大量相关资料,也尝试手动设置$setDirty等属性,但问题仍未解决。
代码/截图
HTML代码
<div class="container-row"> <div class="form-item" *ngIf="form.get('startTime') as control"> <ejs-timepicker formControlName="startTime" placeholder="Start Time" floatLabelType="Auto" cssClass="e-outline" [class.e-error]="control.invalid" ></ejs-timepicker> <div *ngIf="control.invalid && (control.dirty || control.touched)" class="e-error"> <div *ngFor="let err of getErrorList(control.errors)">{{err.message}}</div> <div *ngIf="control.errors.required">Start Time is required.</div> </div> </div>
TS表单构建代码
form = this.formBuilder.group({ //其他字段 startTime: [null, AppValidators.required], endTime: [null, AppValidators.required], });
视图中的错误

内容的提问来源于stack exchange,提问作者Serus
相关产品推荐
相关产品推荐

