DatePicker阻止了周末

时间:2015-06-05 09:33:31

标签: jquery datepicker

我需要在DatePicker日历上跳过周末。下面的第一篇文章帮助我弄清楚如何阻止出去周末,但是,它本身就不适用于我需要的东西。

让我举几个例子:

  1. 让我们说今天是星期一。最好的3个选项将在周一展示, 星期二&星期三。
  2. 现在让我们说今天是星期四。日历上显示的下三个选项将是周四,周五和周四。星期一。
  3. 最后我们说今天是星期六。日历上显示的下三个选项将是周一,周二,周三。
  4. 换句话说,应该总共有3天可供选择,它应该只是工作日。

    <script>
    //initialise datepicker
    $(function() {
        $( ".datepicker").datepicker({
            dateFormat: 'dd/mm/yy',
             minDate: 0,
             maxDate: 2
        });
      /*
      $('body').on('focus',".datepicker", function(){
        $(this).datepicker({dateFormat: 'dd/mm/yy'});
      })*/
    
      $('.cal').on('click', function(e) {
        var target = $(this).closest('.calendar').find('.datepicker');
        target.datepicker('show');
      });
    });
    
    </script>
    

2 个答案:

答案 0 :(得分:4)

我认为这是一个非常肮脏的黑客你可以过来:

$("#datepicker").datepicker({
    dateFormat: 'dd/mm/yy',
    beforeShowDay: $.datepicker.noWeekends,
    minDate: 0,
    maxDate: (function () {
        var today = new Date().getDay(), add = 0;
        switch (today) {
            case 0:
                add = 1;
                break;
            case 4:
            case 5:
            case 6:
                add = 2;
                break;
        }
        return 2 + add;
    })()
});

答案 1 :(得分:1)

假设您正在使用jQuery UI Datepicker(其他日期选择器可用):

$( "#datepicker" ).datepicker({
    dateFormat: 'dd/mm/yy',
    minDate: 0,
    maxDate: 2,
    beforeShowDay: $.datepicker.noWeekends
});

链接到documentation

beforeShowDay接受一个函数作为回调来确定要显示的天数,该函数根据当天返回truefalse。例如,可以提供自定义功能以仅排除星期日。