2015-05-07 3 views
0

Пожалуйста, обратите внимание на этот код:Как отключить jQuery Datepicker дней после init?

var array = ["2013-03-14","2013-03-15","2013-03-16"] 
 

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

Это отключит даты во время инициализации. Как отключить дополнительные дни после инициализации?

ответ

0

Ваш код уже делает это. Переменная 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 и снова откройте фишку даты, чтобы просмотреть даты дополнительных отключений.

+0

Это не работает для меня, потому что в реальном случае есть функция, назначенная «beforeShowDay», которую я не могу изменить, и она не просто проверяет их в массиве. Поэтому мне нужен способ отключить больше времени. – barakuda28

Смежные вопросы