6

我在一個巨大的項目上使用jquery UI datepicker,現在我意識到我只需要在某些區域只允許某些工作日。我閱讀他們的文檔,並沒有發現任何關於它..我知道有一些jq的datepickers腳本可以做到這一點,但我不想使用任何額外的腳本,如果這是可能的。 任何人都知道這個解決方法?也許我在文檔中誤解了任何內容?jQuery UI Datepicker - 只允許某些工作日

注:例如期望的行爲:http://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

預先感謝幫助, 乾杯 佩德羅

+3

您發佈的鏈接包含完整的回答你的問題.. – 2010-12-19 19:13:04

+1

@Gaby:和演示的功能! – 2010-12-19 21:00:34

+0

@安德魯,yeap ...非常直截了當。 – 2010-12-19 21:06:22

回答

2

從文檔:

beforeShowDay: 該函數將一個日期作爲參數,並必須返回一個[0]等於true/false的數組,指示該日期是否可選,[1]等於CSS類名或s'作爲默認演示文稿,[2]可選彈出工具提示這一天。在日期選擇器顯示之前每天都會調用它。

舉一個例子,請看這裏:

http://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

+0

在博客的評論中發現這看起來稍微好點http://jquerybyexample.blogspot.com/2010/07/disable-specific-days-in-jquery.html – 2011-08-26 13:41:48

7
$(".datepicker.future").datepicker('option','beforeShowDay',function(date){ 
    var td = date.getDay(); 
    var ret = [(date.getDay() != 0 && date.getDay() != 6),'',(td != 'Sat' && td != 'Sun')?'':'only on workday']; 
    return ret; 
}); 
+0

td變量正在分配一個整數值,但它是與琴絃進行比較。我想你想這樣:var td = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] [date.getDay()]; – primehalo 2017-01-14 02:35:11

5

@Jan托馬斯忘了加上可變TD。正確的代碼是:

$(".datepicker.future").datepicker('option','beforeShowDay',function(date){ 
    var td = date.getDay(); 
    var ret = [(date.getDay() != 0 && date.getDay() != 6),'',(td != 'Sat' && td != 'Sun')?'':'only on workday']; 
    return ret; 
}); 
+1

如果它是給定日期的數字表示,可以是「sat」嗎?一個錯誤或我不明白。 – Tyler 2014-05-20 00:48:33

+0

td變量正在分配一個整數值,但它正在與字符串進行比較。我想你想這樣:var td = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] [date.getDay()]; – primehalo 2017-01-14 02:36:10

3
$('selector').datepicker({ 
beforeShowDay: $.datepicker.noWeekends // disable weekends 
}); 
0

讓馬利特的答案(beforeShowDay: $.datepicker.noWeekends)古樸典雅。

但是,如果您已經使用beforeShowDay(正如我的情況)調用函數,那麼您可以禁用一週中的某些日子(在這種情況下是星期日和星期六),將其與其餘的

beforeShowDay: function (date) { 

    /* your other function code here */ 

    if (date.getDay() > 0 && date.getDay() < 6) { 
     return [true, '']; 
    } else { 
     return [false, '']; 
    } 
} 

enter image description here