是否可以在不破坏jquery datepicker的情况下更新不可用的天数

时间:2017-05-23 15:20:47

标签: javascript jquery datepicker

我有jQuery Datepicker,日期不可用:

var disabledDates = ["23.05.2017", "24.05.2017"];

$("#datepicker").datepicker({
    beforeShowDay: function(date) {
        var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
        return [disabledDates.indexOf(string) == -1];
    }
});

我发现更新disabledDates的唯一方法是销毁datepicker,更新不可用日期并重新初始化。

// Destroy
$("#datepicker").datepicker("destroy");

// Update unavailable times
disabledDates = ["23.05.2017", "24.05.2017", "25.05.2017", "26.05.2017"];

// Re-init
$("#datepicker").datepicker({
    beforeShowDay: function(date) {
        var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
        return [disabledDates.indexOf(string) == -1];
    }
});

还有其他/更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您无需销毁它,只需更改beforeShowDay属性,请参阅以下内容:

var disableddates = ["20-05-2017", "21-05-2017"];

function DisableSpecificDates(date) {
  var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
  return [disableddates.indexOf(string) == -1];
}
  
$(function() {
  $("#datepicker").datepicker({
    beforeShowDay: DisableSpecificDates
  });  
});

$("#btn1").click(function(){
      disableddates = ["01-05-2017", "02-05-2017"];
      $("#datepicker").datepicker({
        beforeShowDay: DisableSpecificDates
      });
      console.log("Disabled dates changed");
    });
<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>
<p>Date: <input type="text" id="datepicker"></p>
<input type="button" id="btn1" value="Change dates">

我希望它可以帮助你,再见。