Ваш код уже делает это. Переменная array
, содержащая даты для отключения, считывается каждый раз, когда отображается датапикер. Из-за этого вы можете просто обновить свои значения, и он будет автоматически отражать эти изменения при следующей загрузке.
var array = ["2015-05-14","2015-05-15","2015-05-16"]
$('input').datepicker({
beforeShowDay: function(date){
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ array.indexOf(string) == -1 ]
}
});
$('button').click(function() {
array.push('2015-05-20', '2015-05-21', '2015-05-22');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<input />
<button>Disable more days</button>
Для просмотра этого в действии, сначала щелкните input
, чтобы увидеть начальные дни инвалидов. Затем нажмите button
и снова откройте фишку даты, чтобы просмотреть даты дополнительных отключений.
Это не работает для меня, потому что в реальном случае есть функция, назначенная «beforeShowDay», которую я не могу изменить, и она не просто проверяет их в массиве. Поэтому мне нужен способ отключить больше времени. – barakuda28