我试图禁用存储在数据库中的日期。
<script type="text/javascript">
var dates = JSON.stringify( '<?php echo json_encode($darray); ?>');
function BookedDates(date) {
for (var i = 0; i < dates.length; i++) {
if (new Date(dates[i]).toString() == date.toString()) {
return [false];
}
}
return [true];
}
// alert(dates)
console.log(dates);
</script>
<p>Date: <input type="date" class="datepicker2" name="date"></p>
上面的脚本在控制台上打印日期:
"[{\"date\":\"2016-04-02\"},{\"date\":\"2016-04-08\"},{\"date\":\"2016-04-15\"},{\"date\":\"2016-04-29\"},{\"date\":\"2016-05-07\"}]"
但是,当我尝试在日期选择器中禁用这些日期时出现问题:
$(function(){
$('.datepicker2').pickadate({
dateFormat: 'yy/mm/dd',
beforeShowDay:[
BookedDates
]
});
});
我在控制台上没有任何错误或任何内容,数组中的那些日期只是没有被禁用,非常感谢任何帮助。
答案 0 :(得分:1)
在尝试实现属于JQuery UI datepicker的功能时,您似乎正在使用pickadate.js。这是两个不同的库。您需要转到pickadate.js api,并在那里找到解决方案:
http://amsul.ca/pickadate.js/api/
以下是相关部分的简短摘要:
您可以禁用日期集,然后启用整个集或 这些集合中的具体日期通过以下方法:
具体日期:
picker.set('disable', [
// Using a collection of arrays formatted as [YEAR,MONTH,DATE]
[2016,9,3], [2016,9,9], [2016,9,20],
// Using JavaScript Date objects
new Date(2015,9,13), new Date(2015,9,24)
])
picker.set('enable', [
[2016,9,9],
[2016,9,13],
new Date(2015,9,20)
])