Datepicker禁用日期

时间:2016-04-19 14:20:30

标签: javascript jquery datepicker

我试图禁用存储在数据库中的日期。

<script type="text/javascript">

   var dates = JSON.stringify( '<?php echo json_encode($darray); ?>');
   function BookedDates(date) {
        for (var i = 0; i < dates.length; i++) {
            if (new Date(dates[i]).toString() == date.toString()) {
                return [false];
            }
        }
        return [true];
    }
  //  alert(dates)
    console.log(dates);
</script>

<p>Date: <input type="date" class="datepicker2" name="date"></p>

上面的脚本在控制台上打印日期:

"[{\"date\":\"2016-04-02\"},{\"date\":\"2016-04-08\"},{\"date\":\"2016-04-15\"},{\"date\":\"2016-04-29\"},{\"date\":\"2016-05-07\"}]"

但是,当我尝试在日期选择器中禁用这些日期时出现问题:

$(function(){
    $('.datepicker2').pickadate({
        dateFormat: 'yy/mm/dd',
        beforeShowDay:[
            BookedDates
        ]
    });
});

我在控制台上没有任何错误或任何内容,数组中的那些日期只是没有被禁用,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在尝试实现属于JQuery UI datepicker的功能时,您似乎正在使用pickadate.js。这是两个不同的库。您需要转到pickadate.js api,并在那里找到解决方案:

http://amsul.ca/pickadate.js/api/

以下是相关部分的简短摘要:

  

您可以禁用日期集,然后启用整个集或   这些集合中的具体日期通过以下方法:

     

具体日期:

picker.set('disable', [

  // Using a collection of arrays formatted as [YEAR,MONTH,DATE]
  [2016,9,3], [2016,9,9], [2016,9,20],

  // Using JavaScript Date objects
  new Date(2015,9,13), new Date(2015,9,24)
])
picker.set('enable', [
  [2016,9,9],
  [2016,9,13],
  new Date(2015,9,20)
])