javascript - Bootstrap 日期时间选择器中的选项禁用日期不起作用

标签 javascript jquery twitter-bootstrap momentjs eonasdan-datetimepicker

我正在使用bootstrap datetimepicker对于我的日历。我的代码如下所示:

var sundaysDisabled = [
  moment("17/12/2017"),
  moment("7/1/2018"),
  moment("14/1/2018"),
  moment("21/1/2018"),
  moment("28/1/2018"),
  moment("4/2/2018")
];

$("#form_dateTakeout").datetimepicker({
  inline: true,
  format: 'L',
  daysOfWeekDisabled: daysDisabled,
  disabledDates: sundaysDisabled,
  date: selectDate,
  minDate: tomorrow
});

我在 documentation 中找到了选项 disabledDates .

问题是我这些天仍然可以选择,我只收到此警告:

enter image description here

但我认为这不可能是问题,对吗?

最佳答案

您收到弃用警告,因为您的日期字符串不是可识别的格式(ISO 8601 或 RFC 2822),您必须使用 moment(String, String) 。就您而言,您可以拥有类似 moment("17/12/2017", 'D/M/YYYY') 的内容。

要将默认日期设置为日期时间选择器,请使用 defaultDate选项而不是 date (第一个已记录,而后者没有记录,即使看起来两者都有效)。

确保您的 defaultDate , minDate , disabledDatesdaysOfWeekDisabled是连贯的,另见useCurrent文档。

defaultDate 设置为启用日期以防止出现以下情况:

Uncaught Tried 7 times to find a valid date

这是一个完整的示例:

var sundaysDisabled = [
  moment("17/12/2017", 'D/M/YYYY'),
  moment("7/1/2018", 'D/M/YYYY'),
  moment("14/1/2018", 'D/M/YYYY'),
  moment("21/1/2018", 'D/M/YYYY'),
  moment("28/1/2018", 'D/M/YYYY'),
  moment("4/2/2018", 'D/M/YYYY')
];

var tomorrow = moment().add(1, 'd').startOf('d');
var daysDisabled = [3]; //e.g. disable all wednesday
var selectDate = moment().add(1, 'week').day(2); // e.g. select next tuesday
$("#form_dateTakeout").datetimepicker({
  inline: true,
  format: 'L',
  daysOfWeekDisabled: daysDisabled,
  disabledDates: sundaysDisabled,
  defaultDate: selectDate,
  minDate: tomorrow
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.css" rel="stylesheet"/>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.4/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

<div class="form-group">
  <div class="row">
    <div class="col-md-8">
      <div id="form_dateTakeout"></div>
    </div>
  </div>
</div>

关于javascript - Bootstrap 日期时间选择器中的选项禁用日期不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47809518/

相关文章:

javascript - jquery jsonp 请求未正确添加回调参数

javascript - jQuery focus() 位于属于动态添加到页面中的表单的文本区域

javascript - 在 Javascript 中,如何将新选项添加​​到 Html Select 中,根据文本的字母顺序值插入

javascript - 如何在 Microsoft Edge 中使用 Bootstrap Datepicker

javascript - Bootstrap 导航栏切换按钮停止工作

jquery - Bootstrap 菜单下拉问题

javascript - 将 jQuery 传递给 .animate 回调

jquery - CSS - float 元素矩阵

javascript - 如何从较大的字符串中提取字符串?

javascript - Bootstrap 下拉菜单与容器 div 重叠,而不是将其向下推