根据下拉列表中选定的年份自动设置日期选择器的 mindate 和 maxdate

Auto set mindate and maxdate of datepicker based on selected year in dropdown

我可以根据在下拉列表中选择的年份设置日期选择器的 mindate 和 maxdate 吗?

下拉菜单

<div class="col-sm-2" id="y_type" style="text-align:left;">
<select class="" style="width: 100%; display:inline-block;">
    @{ 
         DateTime datetime = DateTime.Now;
         for (int i = 0; i <= 2; i++)
      {
           <option>@(datetime.AddYears(+i).ToString("yyyy"))</option>
       }
     }
</select>
 </div>

日期选择器代码

$(document).ready(function () {
        var dateCount = 1;
        $('.holidayBody tr').each(function (e) {
            var x = $(this).find('.holiday_date');
            x.attr('id', 'daterange' + dateCount);
            x.attr('readonly', 'true');
            $('#daterange' + dateCount).datepicker({ dateFormat: "dd/mm/yyyy" });
            dateCount++;
        });
    });

如果选择2017年,textfield中的日期选择器只会少2017年,大的年份将被禁用

你可以试试这个

$(function () {
    var start = new Date();
    var end = new Date();

    $('#dob').datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: start.getFullYear() + ':' + end.getFullYear()
    });
});

试试这个代码

您可以使用 yearRange

设置年份

http://api.jqueryui.com/datepicker/#option-yearRange

var selectedYear;
$('#dropdown').on('change',function(){
  selectedYear = $('#dropdown :selected').text();
  var start = new Date();
  start.setFullYear(selectedYear);
  $("#daterange").datepicker("destroy");
  $( "#daterange" ).datepicker({
     changeMonth: true,
        changeYear: true,
 yearRange: start.getFullYear() + ':' + start.getFullYear()
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css">
<select id="dropdown" name="dropdown">
  <option value="select">select-year</option>
  <option value="2011">2011</option>
  <option value="2012">2012</option>
  <option value="2013">2013</option>
</select>
<input type="text" id="daterange">