2017-08-08 78 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日」]; –

相關問題