fix(datepicker): fix for empty or browser-filled inputs

This commit is contained in:
Gregor Kleen 2019-10-28 11:02:43 +01:00
parent 8388812b51
commit 3c24e5f187

View File

@ -126,13 +126,19 @@ export class Datepicker {
// FIXME dirty hack below; fix tail.datetime instead
// get date object from internal format before datetime does nasty things with it
const parsedMomentDate = moment(this._element.value).toDate();
var parsedMomentDate = moment(this._element.value, [ FORM_DATE_FORMAT[this.elementType], FORM_DATE_FORMAT_MOMENT[this.elementType] ], true);
if (parsedMomentDate && parsedMomentDate.isValid()) {
parsedMomentDate = parsedMomentDate.toDate();
} else {
parsedMomentDate = undefined;
}
// initialize tail.datetime (datepicker) instance and let it do weird stuff with the element value
this.datepickerInstance = datetime(this._element, { ...datepickerGlobalConfig, ...datepickerConfig });
// reset date to something sane
this.datepickerInstance.selectDate(parsedMomentDate);
if (parsedMomentDate)
this.datepickerInstance.selectDate(parsedMomentDate);
// insert the datepicker element (dt) after the form
this._element.form.parentNode.insertBefore(this.datepickerInstance.dt, this._element.form.nextSibling);