Jquery完整日历禁用过去的日期

时间:2017-04-25 12:06:01

标签: jquery fullcalendar

如何在fullcalendar中禁用过去的日期。

 $('#calendar').fullCalendar({
    editable: false,
    selectable: true,
    eventLimit: true,
    views: {
      agenda: {
        eventLimit: 1 // adjust to 6 only for agendaWeek/agendaDay
      }
    },
    select: function(start, end, allDay) {
      var check = $.fullCalendar.formatDate(start, 'yyyy-MM-dd');
      var today = $.fullCalendar.formatDate(new Date(), 'yyyy-MM-dd');
      if (check >= today) {
        $('.addClass').addClass('sticky');
      }
    }

  });

这个我的代码工作正常,我可以从新的日期选择addClass也正常工作。但如果我选择下个月的日期addClass无效。 注意我只想使用select选项进行此次点击,而不是dayClick

3 个答案:

答案 0 :(得分:0)

试试这个:

 select: function(start, end, allDay) {
    if(start.isBefore(moment())) {
        alert('Event is start in the past!');
    } else {
       // event ok

    }
}

在此方法中,检查开始,即是否是过去的日期。

我建议你阅读moment.js libary doc,fullcalendar使用的内容。

我希望它可以帮到你。

答案 1 :(得分:0)

$(function() {

  $('#calendar').fullCalendar({
    defaultView: 'month',
    header: {
      left: 'prev,next',
      center: 'title',
      right: 'month,agendaWeek,agendaDay'
    },
    selectable: true,
    selectAllow: function(selectInfo) {
      return moment().diff(selectInfo.start) <= 0
    }
  })

})

您可以检查以下链接:https://codepen.io/anon/pen/ZozZeG?editors=1111

答案 2 :(得分:-1)

使用&#34; $(&#34; #datepicker&#34;)。datepicker({minDate:0});&#34;禁用过去的月份和过去的日期。

例如:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>  
<script>
$(document).ready(function() {    
$( "#date" ).datepicker({ minDate: 0});
});
</script>
</head>
<body>
<input id="date" />
</body>
</html>

希望它会对你有所帮助!