我想问一下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
答案 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 ]
}
});