我正在为日期选择器(http://www.eyecon.ro/bootstrap-datepicker/)使用引导插件。当您转到上面的链接时,有一个代码示例,说明如何制作简单的签入签出表格。在签出日期选择器上,签入日期选择器之前的所有日期都被禁用。
在我的网站上有多个签到结帐表格(用于多个房间)。每个房间都有一个入住和退房日期选择器(情侣)。所以我认为下面的代码会做到这一点。
使用页面上找到的所有日期选择器创建一个数组(它可以是变量)。然后每 2 次遍历数组 + 每对应用代码。
if ($('.datepicker').length) {
//get all the datepickers
var IDs = [];
$(".main").find(".datepicker").each(function(){ IDs.push(this.id); });
for(j=0;j<IDs.length;j++){
var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
var checkin = $('#'+ IDs[j]).datepicker({
onRender: function(date) {
return date.valueOf() < now.valueOf() ? 'disabled' : '';
}
}).on('changeDate', function(ev) {
var newDate = new Date(ev.date)
newDate.setDate(newDate.getDate() + 1);
checkout.setValue(newDate);
checkin.hide();
$('#'+ IDs[j+1])[0].focus();
}).data('datepicker');
var checkout = $('#'+ IDs[j+1]).datepicker({
onRender: function(date) {
return date.valueOf() <= checkin.date.valueOf() ? 'disabled' : '';
}
}).on('changeDate', function(ev) {
checkout.hide();
}).data('datepicker');
j++;
}
}
结果是,如果我在页面上有 2 个日期选择器,则第二个按预期工作。第一个根本没有。如果我在页面上有 1 个日期选择器,它可以工作。
添加警报(ID)时,我会根据需要以正确的顺序获得一个带有 ID 的数组。
如果有人可以帮助... :) 在此先感谢!