0

您好,我正在使用一个 Pikaday 日期选择器,它正在像这样初始化

Array.from(document.getElementsByClassName('js-picker')).forEach(element => {
    new Pikaday({
        field: element,
        format: 'DD/MM/YYYY'
    });
    element.addEventListener('mousedown', preventAutoCompleteOnTarget);
    element.addEventListener('focusout', allowAutoCompleteOnTarget);
});

在给定的情况下,我想启用/禁用它并设置显示日期。

我正在做这样的事情

const picker = new Pikaday({ field: document.getElementById('date-picker') });
const dp = document.getElementById('date-picker');
const today = new Date(Date.now());
const anotherDay = new Date(anotherDate);

if (x === '1') {
    // enable datepicker / set datepicker to renewal date / set minimum date
    picker.setMinDate(today);
    picker.setMaxDate(anotherDate);
    dp.disabled = false;
    dp.value = today.toLocaleDateString('en-GB');
} else {
    dp.value = anotherDate;
    dp.disabled = true;
}

我已经摆弄了一点,但不多。

我有几个问题,但主要的一个是这个......

如果我在分配变量后立即运行此代码

const picker = new Pikaday({ field: document.getElementById('date-picker') });

日历(选择器打开)不是我想要的,我只想真正设置值。我以前在其他地方这样做过,没有问题。谁能指出可能出了什么问题?这是真正的问题。

顺便说一句,我找不到禁用选择器的方法,这也是我使用 getElementById 的原因。setDate 是在日历中设置日期,而不仅仅是令人讨厌的文本?有没有办法用选择器变量做这两件事?

4

0 回答 0