【问题标题】:How to disable current week in jquery datepicker?如何在 jquery datepicker 中禁用当前周?
【发布时间】:2016-07-18 09:28:12
【问题描述】:

我正在尝试解决这个问题。我还是这样做了,

$(function() {
    $( "#datepicker" ).datepicker({ 
        dateFormat: 'yy-mm-dd', 
        firstDay: 1,
        minDate:1 
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<input type="text" id="datepicker">

如果您运行此代码,您可以看到日历。

我想禁用整个本周。可用日期将从下周开始。 例如,今天是18.07.2016。所以,如果有人想使用这个日历,那么这一整周就会变得不活跃。下一个可用日期将从24.07.2016开始。

提前感谢您的帮助。

【问题讨论】:

  • 当前周是指日历周,对吗?不只是 7 天
  • 是的。只有日历周。周日至周六。
  • 看看这篇文章,可能会对你有所帮助。 stackoverflow.com/questions/2968414/…
  • 是的。我见过。但这篇文章只是为了禁用特定的工作日或每周的几天。但我不想那样。我只想禁用本周。仅限当前周日至周六。
  • 请阅读评论。我写的是周日到周六,而不是周日和周六。

标签: javascript jquery datepicker jquery-ui-datepicker


【解决方案1】:

首先找到星期几。并且会相应地计算mindate,并且本周的所有日期都将被禁用。请参考以下代码。

$(function() {
    var date = new Date();
    var dayNo = date.getDay();
    var mindate = (7-dayNo);

    $( "#datepicker" ).datepicker({
         dateFormat: 'yy-mm-dd', firstDay: 1,minDate: mindate
    });
});

【讨论】:

    【解决方案2】:

    禁用从周日到周六的当前周,您只需将firstDay 设置为0(表示周日)并使用beforeShowDay 用于将日期作为参数并返回一个数组。供参考阅读Datepicker Option - beforeShowDay

    请检查 sn-p 以启用过去和未来的所有其他日期,但禁用当前星期日期除外。

    周日到周六禁用,使用下面的sn-p

    $(function() {
        $("#datepicker").datepicker({
            firstDay: 0,
            beforeShowDay: function (date) {
                var sunday = new Date();
                sunday.setHours(0,0,0,0);
                
                sunday.setDate(sunday.getDate() - (sunday.getDay() || 0));
                var saturday = new Date(sunday.getTime());
                
                saturday.setDate(sunday.getDate() + 6);
                
                if (date >= sunday && date <= saturday) {
                  return [false, ''];
                }
                else {
                  return [true, ''];
                }
            }
        });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    
    <input type="text" id="datepicker">

    而且,还可以从 星期一开始禁用整个星期 到周日

    $(function() {
        $('#datepicker').datepicker({
            firstDay: 1,
            beforeShowDay: function (date) {
               var monday = new Date();
               monday.setHours(0,0,0,0);
    
               monday.setDate(monday.getDate() + 1 - (monday.getDay() || 7));
               var sunday = new Date(monday);
               sunday.setDate(monday.getDate() + 6);
    
               if (date >= monday && date <= sunday) {
                  return [false, ''];
               } else {
                   return [true, ''];
              }
            }
        });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    
    <input type="text" id="datepicker">

    【讨论】:

      【解决方案3】:

      这是禁用特定周的简单方法

      <script>
       $(function(){
      $('.bet_end').datepicker({              //ere .bet_end Is A Datepicker Class Name
          daysOfWeekDisabled: [0,6]   //Here Type Only Column Number To Disable Week 
           });
      }); 
      </script>
      

      Click here To See Image (Sunday And Saturdat All Week Are Disable)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-13
        • 1970-01-01
        • 1970-01-01
        • 2021-03-06
        • 1970-01-01
        • 2017-08-04
        相关资源
        最近更新 更多