jQuery不允许在日期选择器中选择以前的日期

时间:2019-10-25 12:38:38

标签: javascript jquery html jquery-ui-datepicker

所以我有一个日期选择器,每个月只能选择2个日期,第1个和第15个。问题在于它仍然允许选择以前的日期。例如,如果不能选择10月1日以前的所有日期。我该如何做才能使以前的所有日期都无法选择?

<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<input id="side-datepicker">

$('#side-datepicker').datepicker({
     beforeShowDay: function (date) {
    //getDate() returns the day (0-31)
     if (date.getDate() == 1 || date.getDate() == 15) {
     return [true, ''];
    }
    return [false, ''];
    },


    });

2 个答案:

答案 0 :(得分:0)

$('#side-datepicker').datepicker({
  beforeShowDay: function (date) {
    let today = new Date('2019-10-24');
    //if you want the current date to be selectable uncomment the following line
    //today.setDate(today.getDate() -1);
    if (date > today && (date.getDate() == 1 || date.getDate() == 15)) {
      return [true, ''];
    }
    return [false, ''];
  }
});
<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<input id="side-datepicker">

答案 1 :(得分:0)

您将要使用“最小日期”选项来强制日期选择器的底部,如下所示:

var currentTime = new Date() 
var minDate = new Date(currentTime.getFullYear(), currentTime.getMonth(), +1); //first day of current month
$('#side-datepicker').datepicker({
     minDate: minDate, 
     beforeShowDay: function (date) {

    //getDate() returns the day (0-31)
     if (date.getDate() == 1 || date.getDate() == 15) {
     return [true, ''];
    }
    return [false, ''];
    },


    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<input id="side-datepicker">

如果要将其限制为仅过去的当前月份和日期。示例仅允许1和15,但是今天是10月25日(过去1和15),因此第一个可用的日期是11月1日,那么您可以按以下方式修改最小日期:

var minDate = new Date(currentTime.getFullYear(), currentTime.getMonth(), currentTime.getDate()); //current date

例如:

var currentTime = new Date() 
var minDate = new Date(currentTime.getFullYear(), currentTime.getMonth(), currentTime.getDate()); //current date
$('#side-datepicker').datepicker({
     minDate: minDate, 
     beforeShowDay: function (date) {

    //getDate() returns the day (0-31)
     if (date.getDate() == 1 || date.getDate() == 15) {
     return [true, ''];
    }
    return [false, ''];
    },


    });
<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<input id="side-datepicker">