jQuery Datepicker - 如何在今天之后的前两天禁用

时间:2018-02-12 19:36:57

标签: javascript jquery html datepicker calendar

我正在尝试创建一个jQuery日期选择器,其中禁用了今天的前两天。

我的意思是,例如,今天的当前日期是12日(星期一)。当客户点击日历时,第12天和第13天都是灰色且无法点击,第一个可用日期是第14天(周三)

我目前只有一个基本日历,周末已禁用,并且无法找到执行此方法的方法。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以使用选项beforeShowDay,其功能在今天和明天的日期返回false

$(function() {
  $("#datepicker").datepicker({
    beforeShowDay: function(date) {
      var today = new Date().getDate(),
        tomorrow = today + 1;
      // date is not today, tomorrow, or week-end
      if ((today == date.getDate() || tomorrow == date.getDate()) || date.getDay() % 6 == 0) {
        return [false, "CSSclass", "disabled"];
      } else {
        return [true, '', ''];
      }
    }
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>

<p>Date: <input type="text" id="datepicker"></p>

答案 1 :(得分:1)

您可能需要与此jsfiddle

相关的内容
$(function() {
  var date = new Date();
  var minDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 2);
  $('#thedate').datepicker({
    dateFormat: 'dd-mm-yy',
    minDate: minDate,
    beforeShowDay: $.datepicker.noWeekends
  });

});

获取当前日期并创建一个日期为2天的新日期。然后它使用日期选择器的minDate属性并将其设置为新的最小日期。您可能需要检查+2是否大于月末,但这不应该是一个很大的麻烦。