fix(datepicker): fix selecting date from manual input in internal format
This commit is contained in:
parent
8a3ac72cbe
commit
8bdcc9254e
@ -150,13 +150,17 @@ export class Datepicker {
|
|||||||
this._element.classList.add(DATEPICKER_INITIALIZED_CLASS);
|
this._element.classList.add(DATEPICKER_INITIALIZED_CLASS);
|
||||||
|
|
||||||
const setDatepickerDate = () => {
|
const setDatepickerDate = () => {
|
||||||
|
// try to parse the current input element value with fancy and internal format string
|
||||||
const parsedMomentDate = moment(this._element.value, FORM_DATE_FORMAT_MOMENT[this.elementType]);
|
const parsedMomentDate = moment(this._element.value, FORM_DATE_FORMAT_MOMENT[this.elementType]);
|
||||||
const parsedMomentDateInternal = moment(this._element.value, FORM_DATE_FORMAT[this.elementType]);
|
const parsedMomentDateInternal = moment(this._element.value, FORM_DATE_FORMAT[this.elementType]);
|
||||||
|
|
||||||
// only set the datepicker date if the input is either in valid fancy format or in valid internal format
|
// only set the datepicker date if the input is either in valid fancy format or in valid internal format
|
||||||
if (parsedMomentDate.isValid() || parsedMomentDateInternal.isValid()) {
|
if (parsedMomentDate.isValid()) {
|
||||||
this.datepickerInstance.selectDate(parsedMomentDate.toDate());
|
this.datepickerInstance.selectDate(parsedMomentDate.toDate());
|
||||||
|
} else if (parsedMomentDateInternal.isValid()) {
|
||||||
|
this.datepickerInstance.selectDate(parsedMomentDateInternal.toDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
// reregister change event to prevent event loop
|
// reregister change event to prevent event loop
|
||||||
this._element.addEventListener('change', setDatepickerDate, { once: true });
|
this._element.addEventListener('change', setDatepickerDate, { once: true });
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user