beforeShowDay在jQuery datepicker中禁用minDate

时间:2016-12-06 08:24:20

标签: javascript jquery datepicker mindate

我使用两个jQuery日期选择器,基于生成的数组禁用日期。当我将$("#date")日期选择器放在$('输入')之后,这样可以正常工作。但是,我还需要设置一个今天的设置,并将maxDate设置为1年后;当订单是另一种方式时,它可以工作。我怎样才能使它们都起作用?

x == 1.0

1 个答案:

答案 0 :(得分:0)

我不会尝试在同一个DOM元素上应用两个选择器('input'和'#date'),因为第二个可以覆盖第一个配置的内容。如果您希望两个日期选择器共享相同的beforeShowDay函数,您可以将其声明一次并将其分配给每个日期选择器。

我不清楚你想要达到什么目标。但是,使用常见beforeShowDay函数的以下方法可能会有所帮助。在任何情况下,下面的示例将向您展示如何在您的问题中插入包含datepicker的JSFiddle,以阐明您的需求。

$(function() {
    var array=['2016-12-08']; //disabled dates for the beforeShowDay go here
    var beforeShowDay = function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [$.inArray(string, array) == -1];
      };

    $( "#date" ).datepicker({
      beforeShowDay: beforeShowDay,
      dateFormat: 'yy-mm-dd',
      minDate: new Date(),
      maxDate: '+1y',
      onSelect: function(date){
        var selectedDate = new Date(date);
        var msecsInADay = 86400000;
        var endDate = new Date(selectedDate.getTime() + msecsInADay);
        $("#date1").datepicker( "option", "minDate", endDate );
        $("#date1").datepicker( "option", "maxDate", '+1y' );
      }
    });

    $("#date1").datepicker({
      beforeShowDay: beforeShowDay,
      dateFormat: 'yy-mm-dd'
    });
    
  });
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<input id="date">
<input id="date1">