jQuery UI日期选择器-仅允许某些工作日

jQuery UI日期选择器-仅允许某些工作日,jquery,jquery-ui,datepicker,uidatepicker,jquery-ui-datepicker,Jquery,Jquery Ui,Datepicker,Uidatepicker,Jquery Ui Datepicker,我在一个大型项目中使用jQueryUIDatePicker,现在我意识到我只需要在某些区域允许某些工作日。我读了他们的文档,没有发现任何关于它的东西。。我知道jq有一些datepickers脚本可以做到这一点,但如果可能的话,我不想使用任何其他脚本。 有人知道这方面的解决办法吗?也许我误解了他们文档中的任何内容 注:所需行为示例: 提前感谢您的帮助, 干杯 Pedro来自文档: 展览日前: 该函数将日期作为参数,并且必须返回一个数组,其中[0]等于true/false,指示此日期是否可选择,[1

我在一个大型项目中使用jQueryUIDatePicker,现在我意识到我只需要在某些区域允许某些工作日。我读了他们的文档,没有发现任何关于它的东西。。我知道jq有一些datepickers脚本可以做到这一点,但如果可能的话,我不想使用任何其他脚本。 有人知道这方面的解决办法吗?也许我误解了他们文档中的任何内容

注:所需行为示例:

提前感谢您的帮助, 干杯 Pedro

来自文档:

展览日前: 该函数将日期作为参数,并且必须返回一个数组,其中[0]等于true/false,指示此日期是否可选择,[1]等于CSS类名或默认演示文稿的“”,以及[2]此日期的可选弹出工具提示。在显示日期选择器之前,每天都会对其进行调用

有关示例,请参见此处:


@Jan Thomas忘记添加变量td。正确的代码是:

Jean Mallet的回答(showday之前:$.datepicker.noWeekends)简单而优雅

但是,如果您已经在ShowDay之前使用
调用函数(就像我在我的例子中那样),下面是如何禁用一周中的某些日子(在本例中为周日和周六),并将其与函数的其余部分链接在一起:

beforeShowDay: function (date) {

    /* your other function code here */

    if (date.getDay() > 0 && date.getDay() < 6) {
        return [true, ''];
    } else {
        return [false, ''];
    }
}
beforeShowDay:函数(日期){
/*您的其他函数代码在这里*/
如果(date.getDay()>0&&date.getDay()<6){
返回[true',];
}否则{
返回[假];
}
}

您发布的链接包含您问题的完整答案。@Andrew,是的。。。非常直截了当。链接是不幸的死胡同。在博客的评论中发现了这一点,看起来稍微好一点链接断了请修复如果它是给定日期的数字表示,td可以是“sat”吗?一个bug或者我不明白。td变量被分配了一个整数值,但是它被与字符串进行比较。我想您需要这个:var td=['Sun'、'Mon'、'Tue'、'Wed'、'Thu'、'Fri'、'Sat'][date.getDay()];td变量被分配一个整数值,但它与字符串进行比较。我想您需要这个:var td=['Sun'、'Mon'、'Tue'、'Wed'、'Thu'、'Fri'、'Sat'][date.getDay()];
$( ".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;
});
$('selector').datepicker({
beforeShowDay: $.datepicker.noWeekends // disable weekends
});
beforeShowDay: function (date) {

    /* your other function code here */

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