我使用jQuery UI datepicker作为预订引擎的一部分,允许用户仅从可用日期中进行选择。
我的代码如下:
var availableDates = ["16/06/2014", "16/06/2014", "23/06/2014", "27/06/2014", "30/06/2014", "02/07/2014", "07/07/2014", "07/07/2014", "11/07/2014", "14/07/2014", "14/07/2014", "16/07/2014", "18/07/2014", "21/07/2014", "21/07/2014", "25/07/2014", "28/07/2014", "28/07/2014", "01/08/2014", "04/08/2014", "04/08/2014", "06/08/2014", "08/08/2014", "11/08/2014", "11/08/2014", "13/08/2014", "15/08/2014", "18/08/2014", "18/08/2014", "25/08/2014", "01/09/2014", "01/09/2014", "08/09/2014", "12/09/2014", "12/09/2014"]
此代码改编自SO上的另一个解决方案,可以在此处找到,除非他们正在执行相反操作并排除列表中的项目。如何调整我的代码以仅显示上面数组中的日期?
我的代码示例基于这篇文章: Jquery UI datepicker. Disable array of Dates
$('.departureDate').datepicker({
beforeShowDay: available,
altFormat: 'yy.mm.dd',
altField: '#cultureDate'
});
function available(date) {
var dateString = jQuery.datepicker.formatDate('dd/mm/yy', date);
if(availableDates.indexOf(dateString) == -1){
console.log(dateString + " " + false);
return false;
}else{
console.log(dateString + " " + true);
return true;
}
}
答案 0 :(得分:0)
我从示例中注意到我需要将我的true / false值包装在只有一个项目的数组中,因此代码应该是:
function available(date) {
var dateString = jQuery.datepicker.formatDate('dd/mm/yy', date);
if(availableDates.indexOf(dateString) == -1){
console.log(dateString + " " + false);
return [false];
}else{
console.log(dateString + " " + true);
return [true];
}
}