如何在Materialize 1.0中禁用DatePicker上的特定日期?

时间:2018-05-05 17:59:59

标签: javascript html web datepicker materialize

使用禁用选项禁用特定日期之前很简单:

$('.datepicker').pickadate({
  disable: [
    new Date(2015,3,13),
    new Date(2015,3,29)
  ]
})

但现在它只有一个名为disableDayFn的选项,据我所知,它的工作原理如下:

disableDayFn: function(date) {
   return date.getDay() == 1 || date == new Date(2018, 26, 5); //Not working
},

关于getDay的部分会在datepicker(星期日或星期一或您配置的任何一天)的每个第一天停用,但我无法禁用特定日期,我也尝试使用{ {1}}但它会在每个月禁用特定的日期编号,而不是特定的日期编号。 我已经花了好几个小时来搞清楚。

2 个答案:

答案 0 :(得分:0)

好吧,我最终尝试了更多并自行解决这个问题,如果其他人有同样的问题我的解决方案是这样的:

var disabledDays = ['2018-05-06', '2018-05-18'];

var pickADate = M.Datepicker.init(elem, {
  disableDayFn: function(date) {
    var dateParsed = date.toISOString().split("T")[0];
    return (
      date.getDay() == 1 ||  //This disables first day of the week
      date.getDay() == 4 ||  //This disables fourth day of the week
      disabledDays.indexOf(dateParsed) > -1 //This checks if the date is in disabledDays
    );
  }
});

答案 1 :(得分:0)

通过将日期转换为字符串进行比较,我可以使它正常工作,如下所示:

disableDayFn: (date) => {
    return date.toString() == (new Date(2018, 6, 9)).toString() || date.toString() == (new Date(2018, 6, 19)).toString();
}