Skip to content

Commit 9ebcf72

Browse files
authored
fix(module:date-picker): ng-untouched when loose focus (#7922)
1 parent 59143d2 commit 9ebcf72

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

components/date-picker/date-picker.component.spec.ts

+15
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,21 @@ describe('NzDatePickerComponent', () => {
330330
expect(getPickerContainer()).toBeNull();
331331
}));
332332

333+
it('should mark the control touched when user loseFocus of datePicker', fakeAsync(() => {
334+
fixtureInstance.useSuite = 4;
335+
fixtureInstance.control = new FormControl<Date | null>(null);
336+
fixture.detectChanges();
337+
flush();
338+
const datePickerElement = fixture.debugElement.query(By.directive(NzDatePickerComponent)).nativeElement;
339+
openPickerByClickTrigger();
340+
expect(datePickerElement.classList).toContain('ng-untouched');
341+
triggerInputBlur();
342+
fixture.detectChanges();
343+
flush();
344+
expect(datePickerElement.classList).toContain('ng-touched');
345+
expect(fixtureInstance.control.touched).toBeTruthy();
346+
}));
347+
333348
it('should support nzInputReadOnly', fakeAsync(() => {
334349
fixtureInstance.nzInputReadOnly = true;
335350
fixture.detectChanges();

components/date-picker/date-picker.component.ts

+1
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,7 @@ export class NzDatePickerComponent implements OnInit, OnChanges, AfterViewInit,
435435
// blur event has not the relatedTarget in IE11, use focusout instead.
436436
onFocusout(event: FocusEvent): void {
437437
event.preventDefault();
438+
this.onTouchedFn();
438439
if (!this.elementRef.nativeElement.contains(<Node>event.relatedTarget)) {
439440
this.checkAndClose();
440441
}

0 commit comments

Comments
 (0)