jQuery UI Datepicker - 仅允许某些工作日

时间:2010-12-19 18:40:16

标签: jquery jquery-ui datepicker uidatepicker jquery-ui-datepicker

我在一个巨大的项目上使用jquery UI datepicker,我现在意识到我需要在某些区域只允许某些工作日。我读了他们的文档并没有找到任何关于它的东西..我知道jq有一些datepickers脚本可以做到这一点但我不想使用任何额外的脚本,如果可能的话。 有人知道任何解决方法吗?也许我在他们的文档中误解了什么?

注意:所需行为的示例:http://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

先谢谢你的帮助, 干杯 佩德罗

5 个答案:

答案 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中调用它。

举个例子,请看这里:

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

答案 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, ''];
    }
}

enter image description here