我在一个巨大的项目上使用jquery UI datepicker,我现在意识到我需要在某些区域只允许某些工作日。我读了他们的文档并没有找到任何关于它的东西..我知道jq有一些datepickers脚本可以做到这一点但我不想使用任何额外的脚本,如果可能的话。 有人知道任何解决方法吗?也许我在他们的文档中误解了什么?
先谢谢你的帮助, 干杯 佩德罗
答案 0 :(得分: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;
});
答案 1 :(得分:5)
@Jan Thomas忘了添加变量 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;
});
答案 2 :(得分:4)
$('selector').datepicker({
beforeShowDay: $.datepicker.noWeekends // disable weekends
});
答案 3 :(得分:2)
来自文档:
beforeShowDay: 该函数将日期作为参数,并且必须返回一个数组,其中[0]等于true / false,指示此日期是否可选,[1]等于CSS类名称或''为默认演示文稿,和[2]这个日期的可选弹出工具提示。在显示之前,会在datepicker中调用它。
举个例子,请看这里:
答案 4 :(得分:1)
Jean Mallet的回答(beforeShowDay: $.datepicker.noWeekends
)简单而优雅。
但是,如果你已经使用beforeShowDay
调用一个函数(就像我在我的情况下那样),这里是你如何禁用一周中的某些日子(在这种情况下,周日和周六),链接与你的其余功能:
beforeShowDay: function (date) {
/* your other function code here */
if (date.getDay() > 0 && date.getDay() < 6) {
return [true, ''];
} else {
return [false, ''];
}
}