首页 > 解决方案 > 如何在 Date Picker Materialize 中添加事件日期?

问题描述

我正在尝试使用 Materialize 建议的方法在日期选择器的日历中添加事件的日期,但它对我不起作用,或者我做错了什么。

实现日期选择器

var elems = document.querySelector('.datepicker')
var instances = M.Datepicker.init(elems, {
      events: [new Date('2018,12,12').toLocaleDateString()]
    }

编辑-

我的问题的解决方案-

下面是我最终工作结果的代码,顺便说一下,我使用了这种日期格式('2018,12,12'),因为我更容易认为12等于december而不是这种日期格式的 11( 2018 年 11 月 25 日)。

我还添加了其他运行良好的参数。

感谢您的帮助,谢谢 Germa V。

document.addEventListener('DOMContentLoaded', function() {

    let eventsDates = [
        new Date('2018,12,1').toDateString(),
        new Date('2018,12,2').toDateString()
    ];
    let disableListDate = [
        new Date('2018,12,3').toDateString(),
        new Date('2018,12,4').toDateString()
    ];

    let optionsDate = {
        defaultDate: defaultDate,
        setDefaultDate: true,
        firstDay: 1,
        events: eventsDates,
        disableWeekends: false,
        autoClose: false,
        showDaysInNextAndPreviousMonths: false,
        showClearBtn: true,
        i18n:{
            months: 
            ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agost', 'Sept', 'Oct', 'Noviem..', 'Diciemb..'],
            monthsShort: ['Ene', 'Feb', 'Mar', 'Abril', 'Mayo', 'Jun', 'Jul', 'Agos', 'Sep', 'Oct', 'Nov', 'Dic'],
            weekdays: ['Dom','Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab']
        },
        format: 'dd-mmm-yyyy',
        onSelect() {
            if (optionsDate.events.includes(this.date.toDateString())) {
                alert('Event Date');
            }
        },

        disableDayFn(date) {
            if(disableListDate.includes(date.toDateString()))
                return true
            else
                return false
        },

        parse(){

        }
    }

    let elems = document.querySelector('.datepicker');
    let instances = M.Datepicker.init(elems, optionsDate);
});

标签: javascriptdatepickermaterialize

解决方案


这不是您在 中设置日期的方式Date(),如果您想知道如何在 Datepicker 函数中设置日期,那么您可以查看这个答案 --> How to set date in Materialize Datepicker

var optionsDate = {
    events: [new Date(2018, 11, 20).toDateString(),
    new Date(2018, 11, 21).toDateString()],
    onSelect() {
        if (optionsDate.events.includes(this.date.toDateString())) {
            console.log('Event Date');
        }
    }
}
var elemsDate = document.querySelector(".datepicker");
var instanceDate = M.Datepicker.init(elemsDate, optionsDate);

推荐阅读