首页 > 解决方案 > 为什么 bsDatepicker 在手动删除文本框然后选择日期后显示错误?

问题描述

我能够将 bsDatepicker 集成到我的 Angular 5 应用程序中,并且还为各种场景应用了自定义验证。

我对特定场景有 1 个问题:单击文本框,出现日期选择器,然后单击退格键手动删除日期。到目前为止,一切都很好。虽然删除日期选择器仍处于打开状态,但在完成删除后,我从选择器中选择了日期,然后我看到了所需的自定义错误消息。

我希望它与 bsDatepicker 无关。这里有一些代码:来自模板:

  <input type="text" class="form-control" name="myDate" 
    dateValidator placeholder="mm/dd/yyyy" [ngModelOptions]="{ updateOn: 'blur' }" 
    #myDate="ngModel" [(ngModel)]="mydate" id="myDate" autocomplete="off"
    required bsDatepicker [bsConfig]="dpConfig"> 

<div *ngIf="myDate.errors && (myDate.touched || cFormDirective.submitted)">
    <div class="error_message" *ngIf="myDate.errors?.required">         
            Please enter date                                                
    </div> 
</div>  

从进口:

import {enGbLocale} from 'ngx-bootstrap/locale';
import {BsLocaleService, defineLocale, BsDatepickerConfig} from 'ngx-bootstrap';

从组件构造函数:

enGbLocale.invalidDate = '';
defineLocale('custom locale', enGbLocale); 
this.localeService.use('custom locale');
this.dpConfig.showWeekNumbers = false;                                
this.dpConfig.dateInputFormat = 'MM/DD/YYYY'; 

请注意,在显示错误之后,如果我选择日期一切都很好。知道如何避免在这种情况下显示错误吗?谢谢。

更新

看看下面的链接: 在此处输入链接描述

向下滚动到示例,您会发现这是一个现有问题。再次触发选择器,选择日期并手动删除日期。删除时,选择器打开,选择日期,您会看到它没有复制到文本框中。

标签: angularformsvalidation

解决方案


推荐阅读