【问题标题】:Disable entire week based on date selected on datapicker根据在日期选择器上选择的日期禁用整周
【发布时间】:2014-11-25 11:26:05
【问题描述】:

我有一个使用 jQuery UI 创建的 .datepicker(),我现在想这样做:

  1. 禁用所有周末和节假日,
  2. 一旦用户选择一周中的一天,就禁用整周。假设用户选择 2014 年 9 月 23 日星期二,那么日期选择器应该禁用 2014 年 9 月 22 日星期一 -- 2014 年 9 月 28 日星期日。

我在考虑beforeShowDayonSelect 函数,但我不知道如何将我的要求结合在一起。

一些代码可能会有所帮助:

$("#datepicker").datepicker({
    showOn: "button",
    buttonImage: "/painstorder/jquery-ui/images/calendar.gif",
    buttonImageOnly: true,
    minDate: "dateToday",
    maxDate: new Date(2016, 2, 6),     
    buttonText: "Select date",
    dateFormat: "DD, d MM, yy",
    beforeShowDay: $.datepicker.noWeekends
});

【问题讨论】:

  • 您的想法是正确的,但是您尝试过什么?您可以创建一个函数来检查所选日期并在beforeShowDay 上返回真/假。这将帮助您开始:api.jqueryui.com/datepicker/#option-beforeShowDaygithub.com/jquery/jquery-ui/blob/…
  • 您想在同一日期选择器上禁用整个星期吗?所以当用户想在同一个日期选择器上更改日期时,他将无法选择那些日期(以前禁用)???
  • @BojanPetkovski 好点。但只要说如果我想这样做怎么办?有什么建议吗?

标签: javascript jquery jquery-ui jquery-plugins datepicker


【解决方案1】:

这是一个工作示例http://jsfiddle.net/L25d7Lzy/1/

$("#datepicker").datepicker({
    minDate: "dateToday",
    maxDate: new Date(2016, 2, 6),     
    buttonText: "Select date",
    dateFormat: "DD, d MM, yy",

    beforeShow: function () {
        if ($('#datepicker').val()) {
            var thedate = new Date($('#datepicker').val());
            var minDate = new Date(thedate.setDate(thedate.getDate() + 7));
            $('#datepicker').datepicker("option", "minDate", minDate);
        }
    },
    beforeShowDay: $.datepicker.noWeekends,
});

您可以根据自己的需要进行修改:)

【讨论】:

  • 谢谢!但我想禁用所选日期所在的那一周。这欺骗了我。
猜你喜欢
  • 1970-01-01
  • 2020-03-17
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
相关资源
最近更新 更多