每周四启用日期,但禁用某些星期四

时间:2017-08-08 02:30:18

标签: wordpress date jquery-ui-datepicker

我想问一下datepicker。我目前正在开发一个网站,大学生必须在周四选择自己的职业生涯。

首先,我设法禁用除星期四以外的所有日子。我写的代码如下:

<script>
  $( function() 
{
$( "#datepicker" ).datepicker({dateFormat: 'yy-mm-dd', minDate: 0, maxDate: 
'2018-12-15', beforeShowDay: function(date){var day = date.getDay();return 
[day == 4,'disable'];
}});
  } );
</script>

但是现在我要禁用某个星期四例如下周四: &#39; YY-MM-DD&#39; =&#39; 2017-08-17&#39;

有人可以向我解释我应该如何或在哪里修改代码,这可以让我禁用某个星期四?

请参阅此图片以获取我的日期选择 https://drive.google.com/file/d/0ByJlnNeKIynkQ3IzRTN2cHg4WFE/view?usp=sharing

2 个答案:

答案 0 :(得分:1)

像这样使用:

Date.getDay()返回0-6范围内的值,而不是1-7

beforeShowDay: function(date) {
    return [date.getDay() === 0,''];
}

答案 1 :(得分:1)

你仍然可以使用onBeforeShowDay,因为它会在显示datepicker之前被调用,因为更改月份会使datepicker再次渲染。

您可以使用存储日期列表的数组,并根据您的ajax调用的结果更改此日期。 e.g:

//at first only september dates will be disabled.
var array = ["2017-08-10","2017-08-17","2017-08-24"];

 $('input').datepicker({
      onChangeMonthYear: function(year, month, inst) {
       // Perform AJAX call and get the list
       //override the array, and now the october dates will be disabled.
        $.ajax({
           url: ajaxUrl,
           type: "post",
           data: serializedData,
           async: false,
           success: function (data) {
             array = data; //["2017-08-10","2017-08-17","2017-08-24"];
          }
        });  
      },
     beforeShowDay: function (date) {
       var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
       return [array.indexOf(string) == -1 ]
     }
   });