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