【发布时间】:2019-03-10 05:06:46
【问题描述】:
我有当前模板:
<input type="text" class="datepicker" name="my_date" placeholder="mm/dd/yyyy" #myDate="ngModel" [(ngModel)]="myDate" id="my_date">
<div class="error_message" *ngIf="myDate.errors?.invalidDate">
Please enter valid date
</div>
我在 onInit 中有以下代码:
setTimeout(function () {
$('.datepicker').datepicker({
autoclose: true,
dateFormat: 'MM/dd/yyyy'
}).on('hide', function(e) {
$('.datepicker').blur();
});
}, 10);
在保存公司时,我有验证逻辑:
if (validateDate(this.myDate) == false) {
myFormDirective.form.controls['my_date'].setErrors({'invalidDate': true});
}
问题是当日期无效时 datepicker 把今天的日期而不是当 模糊。为了解释这个问题,我将给出 2 个场景: 1. 03/10/1800 不是有效日期(小于 1900),当 onblur 触发时,错误显示正确。 2. 01/32/2002 不是有效日期,但在这种情况下,datepicker 会选择另一个有效日期 2002 年 02/01/2002,而不是显示错误。
知道 tom 如何确保验证发生在 blur 上吗?
【问题讨论】:
-
你能提供 stackblitz 你的代码吗?
-
一般每个表单控件都有一个方法 updateOn 来设置它们何时应该更新和验证自己(更改'|'模糊'|'提交')。默认是change,你可以试试设置blur。
-
这个问题你解决了吗?
-
我还没有解决这个问题,还在寻找解决方案。
-
你为什么在 Angular 应用程序中使用 jQuery...
标签: jquery angular datepicker