首页 > 解决方案 > 在 jQuery UI date-picker-month 中禁用未来日期,不会禁用未来年份

问题描述

首先,我放弃了以下类似的问题:

在 jQuery UI Datepicker 中禁用未来日期

在 Jquery Ui Datepicker 中禁用今天之后的未来日期

在月份/日期选择器上禁用月份

我有以下日期选择器月份(我正在使用:jQuery UI Datepicker 1.11.4。):

<div class="col-xs-6">
    <div class='input-group date' >
        <input 
            type="text" 
            class="form-control date-picker-month disabled" 
            id="datePickerMonth" 
            value="{{ mes_actual|date:"m/Y" }}" 
            autocomplete="off"
        >
        <span class="input-group-addon">
            <span class="glyphicon glyphicon-calendar"></span>
        </span>
    </div>
</div>

所以它看起来像这样:

年 月

我只想禁用未来年份的选择。如果我maxDate像这样添加属性(这是许多类似问题中的建议答案):

$(function() {
  $("#datePickerMonth").datepicker({
     maxDate: new Date() // the same with maxDate: 0
  });

});

然后我可以选择:

  1. 年份:未来年份(我想禁用未来年份
  2. 月份:所选年份的月份
  3. 天数:它显示直到当前日期的天数,但是,如果我选择其中一个天,则即使我之前选择了未来的一年,选定的天也会变成一年

在此处输入图像描述 在此处输入图像描述

我试过这个:

$(function() {
  $("#descuentos_hasta").datepicker({
    beforeShowDay: function (){
      return [false, ''],
    },
  });

});

但是我得到的结果和我没有使用它一样:我仍然可以选择未来的年份和月份。

我希望实现这样的目标:

在此处输入图像描述

灰色圆圈中的年份被禁用,未来几个月也是如此,

这个答案很接近,但我得到的行为与我描述的与日期相关的行为相同,而我的日期选择器仅适用于年月。

请,任何帮助将不胜感激。

更新:已解决

对不起,我试图减少所有不必要的东西,我终于找到了该 maxDate: new Date()行工作的 js 文件。我为其他人添加了下面的代码段。

<!DOCTYPE html>
<head>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
    <link media="all"
          href="https://cdn.jsdelivr.net/npm/eonasdan-bootstrap-datetimepicker@4.17.49/build/css/bootstrap-datetimepicker.css"
          rel="stylesheet">
</head>

<body>
    <div class="col-xs-3">
      <div class='input-group date' >
          <input type="text" class="form-control date-picker-month disabled" name="datePickerMonth" id="datePickerMonth"  }}" autocomplete="off">
          <span class="input-group-addon">
              <span class="glyphicon glyphicon-calendar"></span>
          </span>
      </div>
    </div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" type="text/javascript"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment-with-locales.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/eonasdan-bootstrap-datetimepicker@4.17.49/src/js/bootstrap-datetimepicker.min.js"></script>
    
</body>

  <script type="text/javascript">

      if (  $('.date-picker-month')[0]){
        $('.date-picker-month').datetimepicker({
          //format: 'YYYY-MM-DD'
          viewMode: 'years',
          format: 'MM/YYYY',
          widgetPositioning: { horizontal: 'auto',  vertical: 'auto'},
          maxDate: new Date()
        });
      }  
  </script>

</html>

标签: javascripthtmljquerymomentjseonasdan-datetimepicker

解决方案


推荐阅读