【问题标题】:jQuery UI Datepicker - disable every second weekjQuery UI Datepicker - 每两周禁用一次
【发布时间】:2017-08-04 06:23:01
【问题描述】:

我正在使用 jQuery datepicker,我需要一个每隔一周禁用一次的功能。

例如:偶数周 (2,4,6..) 中的所有天都启用并且可以选择 - 但奇数周 (1,3,5..) 中的所有天都禁用并且无法选择。

我知道我可以通过 beforeshowday 禁用特定日期/或日期。但这不是我想要的……

有什么解决办法吗?谢谢。

【问题讨论】:

    标签: javascript jquery datepicker


    【解决方案1】:

    您可以使用datepickerbeforeShowDay 功能来禁用。下面的代码使用 moment 让一周变得更轻松,但您也可以尝试其他方法:

    $( function() {
        $( "#datepicker" ).datepicker({
            beforeShowDay:function(d){
              var m=moment(d);
              //week number is even
              var en=m.week()%2===0;
              //its first and monday
              en|=(m.date()===1 && m.isoWeekday()===1);
              return [en,"","Odd Week"];
            }
        });
     });
    <link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://momentjs.com/downloads/moment.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
    <p>Date: <input type="text" id="datepicker"></p>

    更新为在奇数周启用第一个星期一。检查1-June-2015

    【讨论】:

    • 您的代码有问题:在 jquery-ui.js 中设置第一个 firstDay: 1(星期一)时,所有禁用的星期日都会启用。也许对此有任何简单的解决方法?
    • 在“/* 日期选择器管理器”下方。在jquery-ui.js中有一个设置“firstDay: 1, //一周的第一天,Sun = 0, Mon = 1, ...” 当设置为1时,所有禁用的星期天都被切换(奇数/偶数周)。无论如何,我最终手动指定了日期。对我来说,这比禁用整个星期(可用的周末等)更有意义。非常感谢您的反馈。
    • 或一周使用:var nWeekOfYear = $.datepicker.iso8601Week(new Date(d)); 如在https://stackoverflow.com/a/12515882/1856258 中看到的那样
    猜你喜欢
    • 2020-03-05
    • 1970-01-01
    • 2018-05-24
    • 2012-11-13
    • 2011-02-27
    • 1970-01-01
    • 2010-10-04
    相关资源
    最近更新 更多