2017-08-08 101 views
0

我想问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> 

但现在我将向例如下周四是禁用某些星期四: “YY-MM-DD” =“2017年8月17日”

有人可以向我解释我应该怎样或在哪里修改代码,以允许我禁用某个星期四?

转寄此图片为我的日期选择https://drive.google.com/file/d/0ByJlnNeKIynkQ3IzRTN2cHg4WFE/view?usp=sharing

+0

请阅读[在什么情况下,我可以在我的问题中添加“紧急”或其他类似的短语,以获得更快的答案?](// meta.stackoverflow.com/q/326569) - 总结是这不是解决志愿者问题的理想方式,而且可能对获得答案起反作用。请不要将这添加到您的问题。 – halfer

回答

1

使用这样的:

Date.getDay()返回范围0-6,不1-7值。

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

我需要添加在哪里?编码之前/之后? –

1

你仍然可以使用onBeforeShowDay,因为显示的日期选择器前,将被调用,因为改变几个月会使日期选择器再次进行渲染。

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

//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 ] 
    } 
    }); 
+0

我试着删除我的代码并将其粘贴。但日期没有弹出:/ –

+0

它的完整的动态代码片段,如果你想要静态,那么删除这一行:array = data; // [ “2017年8月10日”, “2017年8月17日”, “2017年8月24日”]; –

相关问题