Jquery 禁用所选日期之前和之后的日期

Jquery 禁用所选日期之前和之后的日期,jquery,Jquery,在报告中,我显示startDate和endDate字段,以使用jQuery ui datepicker选择特定日期。对于startDate和endDate字段,我将今天日期作为默认日期。我的要求是 1) 如果客户直接单击结束日期,则应禁用今天日期之前和之后的日期 2) 如果客户为startdate选择任何特定日期,则对于enddate,应禁用所选日期之前的日期和今天日期之后的日期 我正在使用下面的代码来解决这个问题 var dates = $( "#startDate, #endDate" ).

在报告中,我显示startDate和endDate字段,以使用jQuery ui datepicker选择特定日期。对于startDate和endDate字段,我将今天日期作为默认日期。我的要求是

1) 如果客户直接单击结束日期,则应禁用今天日期之前和之后的日期

2) 如果客户为startdate选择任何特定日期,则对于enddate,应禁用所选日期之前的日期和今天日期之后的日期

我正在使用下面的代码来解决这个问题

var dates = $( "#startDate, #endDate" ).datepicker({
    defaultDate: "+1w",
    dateFormat : 'dd-mm-yy',
    changeMonth: true,
    numberOfMonths: 1,
    changeMonth: true,
    changeYear : true,
    numberOfMonths: 1,
    maxDate: 0,

    onSelect: function( selectedDate ) {
        var option = this.id == "startDate" ? "minDate" : "maxDate",
        instance = $( this ).data( "datepicker" ),
        date = $.datepicker.parseDate(
            instance.settings.dateFormat ||
            $.datepicker._defaults.dateFormat,
            selectedDate, instance.settings );
        dates.not( this ).datepicker( "option", option, date );
      }
  });
如果我使用这个,我可以做第二个要求,但不是第一个。但我需要实现这两个条件


如何执行此操作?

请尝试以下操作,在选择开始日期和结束日期时,需要调用函数来设置最小日期和最大日期


尝试下面的方法,在选择开始日期和结束日期时,需要调用函数来设置最小日期和最大日期

// To set mindate in enddate
function customRange(input) 
{ 
return {
        minDate: (input.id == "end_date" ? $("#start_date").datepicker("getDate") : new Date())
      }; 
}

// To set maxdate in startdate
function customRangeStart(input) 
{ 
return {
        maxDate:(input.id == "start_date" ? $("#end_date").datepicker("getDate") : null)
      }; 
}

$(document).ready(function() {

   $('#start_date').datepicker(
   {
       beforeShow: customRangeStart,
       minDate: 0,
       dateFormat: "yy-mm-dd",
       changeYear: true
   });

   $('#end_date').datepicker(
   {
       beforeShow: customRange,
       dateFormat: "yy-mm-dd",
       changeYear: true
   });
});