Jquery datepicker 上的 datesDisabled 不起作用

Jquery datesDisabled on datepicker does not work

我知道有很多关于它的主题,但在解决这个问题几天后我决定 post。 我需要在 bootstrap 日期选择器中禁用日期,这里是 html 代码:

<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans" rel="stylesheet">
<link rel="stylesheet" href="../Css/css.css">
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>

<input type="text"  class="form-control" id="txt_dateDebut" value="<?php 
    echo $uneLocation->getDateDebut(); ?>" name="txt_dateDebut" required>

所以我在 Jquery 中尝试了很多解决方案,但没有任何反应,这是一个:

    //disable these dates
var datesForDisable = ["25-01-2019", "26-01-2019", "27-01-2019"];

$("#txt_dateDebut").datepicker({
    format: 'dd/mm/yyyy',
    autoclose: true,
    weekStart: 1,
    calendarWeeks: true,
    todayHighlight: true,
    beforeShowDay: function(date){
        //format date in datepicker to dd-mm-yy
        var date1 = $.datepicker.formatDate('dd-mm-yy', date);
        //disable dates
        return [ datesForDisable.indexOf(date1) == -1 ]
    }
});

(一旦测试成功完成,目标是动态填写 PHP 要禁用的 table 日期)

您可以使用日期选择器的 beforeShowDay 来禁用日期。即:

//disable these dates
var datesForDisable = ["25.01.2019", "26.01.2019", "27.01.2019"]

$("#txt_dateDebut").datepicker({
      format: 'dd/mm/yyyy',
      autoclose: true,
      weekStart: 1,
      calendarWeeks: true,
      todayHighlight: true,
      beforeShowDay: function(date){
       //format date in datepicker to dd-mm-yy
        var date1 = $.datepicker.formatDate('dd.mm.yy', date);
        //disable dates
        return [ datesForDisable.indexOf(date1) == -1 ]
       }
      });
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>

<input  type="text" class="form-control" id="txt_dateDebut" value="<?php echo $uneLocation->getDateDebut(); ?>" name="txt_dateDebut" required>

如果您正在使用 bootstrap 日期选择器,请使用,

$('.#txt_dateDebut').datepicker({
beforeShowDay:function(Date){
var curr_date = Date.getDate();
var curr_month = Date.getMonth()+1;
var curr_year = Date.getFullYear();        
var curr_date=curr_month+'/'+curr_date+'/'+curr_year;        

if (datesForDisable.indexOf(curr_date)>-1) return false;        
}
});