gpt4 book ai didi

javascript - 将 "beforeShowDay"与 Bootstrap-datepicker 一起使用

转载 作者:行者123 更新时间:2023-12-01 02:05:01 26 4
gpt4 key购买 nike

我使用 Bootstrap 3。

在 Bootstrap-datepicker 中,只有当我的 CMS TYPO3 v7 中有关于该日期的新闻时,我才必须启用日期。

我成功地将日期从 TYPO3 viewhelper 获取到数据属性中:

<input id="agenda-date-selector-datepicker-footer" class="agenda-date-selector-datepicker" value="{f:format.date(date:\'{weekDate}\',format:\'d-m-Y\')}" data-dates='{enableDates -> ul:Datepicker()}'>

(Don't take care of "values" it's not important here).

在我的 JS 中,我输入了我的“真实”返回值。(alert("true"); 显示 10 次,但我有 13 个日期...奇怪...并且日期选择器中没有禁用任何日期。

我调整这个工作模型来制作代码 http://jsfiddle.net/vCJ2u/198/但这个模型使用 jQuery UI。

这是我的代码:

$(function(){

if($('.section-agenda-date-selector').length){
availableDates = $('#agenda-date-selector-datepicker-footer').data('dates');
alert(availableDates);
$("#agenda-date-selector-datepicker-footer").datepicker({
maxViewMode: 2,
language: "fr",
autoclose: true,
todayHighlight: true,
//startDate: '+1d',
//weekStart: 1,
format: 'yyyy-mm-dd',
beforeShowDay: function(dt){
console.log([available(dt), "" ]);
return [available(dt), "" ];
}
});

initAgendaListe();
}


});

function available(date) {
dmy = ( '0' + date.getDate() ).slice( -2 ) + "-" + ( '0' + (date.getMonth()+1) ).slice( -2 ) + "-" + date.getFullYear();

if ($.inArray(dmy.toString(), availableDates) != -1){
// alert("true");
return {
enabled : true
};
} else {
return {
enabled : false
};
}

}

function initAgendaListe(){
// au click sur un élément du datepicker
$('.agenda-date-selector-datepicker').on('change', function(){
window.location.href = '/index.php?id=19&eventsbyweek='+$(this).val();
});
};
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>

<div class="section section-grey section-agenda-date-selector">
...
</div>

<div class="agenda-datepicker datepicker-wrapper">
<div class="input-datepicker-hidden">
<input id="agenda-date-selector-datepicker-footer" class="agenda-date-selector-datepicker" value="" data-dates='["15-06-2017","20-06-2017","29-06-2017","29-08-2017","11-09-2017","15-09-2017","17-09-2017","18-09-2017","27-09-2017","28-09-2017","29-09-2017","30-09-2017","31-10-2017"]'>
</div>
<label class="btn btn-default" for="agenda-date-selector-datepicker-footer">
<i class="icon icon-left icon-agenda"></i>
Choisir une date
</label>

</div>

请问有什么想法吗?欢迎任何帮助! :)提前致谢!

最佳答案

希望这有帮助!

使用 Bootstrap beforeShowDay启用日期的选项。

$(function() {
var datesEnabled = ['2017-9-10', '2017-9-15', '2017-9-25'];
$('#datepicker').datepicker({
format: 'yyyy-mm-dd',
beforeShowDay: function (date) {
var allDates = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
if(datesEnabled.indexOf(allDates) != -1)
return true;
else
return false;
}
});
});
td.day.disabled {
opacity: 0.2;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<input id="datepicker">

关于javascript - 将 "beforeShowDay"与 Bootstrap-datepicker 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46120946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com