html-framework-7 - Framework7 Range Calendar Last Date 滚动问题
问题描述
当范围日历具有当前月份的最后一天且最小日期参数设置为昨天作为今天需要选择时。滚动并移至下个月后,日历不会返回上一月/当前月。像今天是 31-05-2018,它可以在日历初始化时选择。但是当移动到六月时,日历无法滚动回五月。下面是我的代码
calendarRange = botapp.calendar.create({
inputEl: "#hdnDepDatesBus",
containerEl: '#divDepDatesBus',
dateFormat: 'yyyy-mm-dd',
minDate: yd, //yesterday date as today date need in selection
rangePicker: true,
direction: 'vertical',
value: [arrdDateBus],
renderToolbar: function () {
return '<div class="toolbar calendar-custom-toolbar no-shadow divCalanderMonth"><div class="toolbar-inner"><div class="left"></div><div class="center"></div><div class="right"></div></div></div>';
},
on: {
init: function (c) {
jq('.calendar-custom-toolbar .center').text(monthNames[c.currentMonth] + ' ' + c.currentYear);
},
monthYearChangeStart: function (c) {
jq('.calendar-custom-toolbar .center').text(monthNames[c.currentMonth] + ' ' + c.currentYear);
},
change: function (c) {
jq('.calendar-custom-toolbar .center').text(monthNames[c.value[0].getMonth()] + ' ' + c.value[0].getFullYear());
if (c.value.length == 1) {
if (c.value[0].getMonth() > c.currentMonth) {
calendarRange.nextMonth();
} else if (c.value[0].getMonth() < c.currentMonth) {
calendarRange.prevMonth();
}
}
}
}
});
解决方案
经过大量搜索,我找到的解决方案是,您想选择哪个日期作为最小日期,选择该日期前 1 天。然后使用禁用日期选项禁用该日期。这将解决回滚问题,并且不会启用额外的过去日期。这是解决方案和工作。在 framework7 中也禁用了今天奇怪的最小日期以供选择。需要在最短日期前 1 天输入才能选择今天。
calendarRangeTrain = botapp.calendar.create({
inputEl: "#hdnDepDatesTrain",
containerEl: '#divDepDatesTrain',
dateFormat: 'yyyy-mm-dd',
rangePicker: true,
minDate: yd, // here yd is 2 days before today
direction: 'vertical',
value: [arrdDateTrain],
disabled: [new Date(yd.getFullYear(), yd.getMonth(), yd.getDate() + 1)],
renderToolbar: function () {
return '<div class="toolbar calendar-custom-toolbar no-shadow divCalanderMonth"><div class="toolbar-inner"><div class="left"></div><div class="center"></div><div class="right"></div></div></div>';
},
on: {
init: function (c) {
jq('.calendar-custom-toolbar .center').text(monthNames[c.currentMonth] + ' ' + c.currentYear);
},
monthYearChangeStart: function (c) {
jq('.calendar-custom-toolbar .center').text(monthNames[c.currentMonth] + ' ' + c.currentYear);
},
change: function (c) {
jq('.calendar-custom-toolbar .center').text(monthNames[c.value[0].getMonth()] + ' ' + c.value[0].getFullYear());
if (c.value.length == 1) {
if (c.value[0].getMonth() > c.currentMonth) {
calendarRange.nextMonth();
} else if (c.value[0].getMonth() < c.currentMonth) {
calendarRange.prevMonth();
}
}
}
}
});
推荐阅读
- vue.js - 这个 `layout` 道具如何在没有 `:layout.sync` 的情况下更新?
- javascript - Firebase google登录弹出窗口闪烁并且从未使用Vuejs登录?
- javascript - AngularJS 改进了登陆页面的首次加载,延迟加载其他脚本
- typescript - 如何正确声明数据变量的类型?
- jsf - 通过 p:fileUpload 上传图像后,在 p:dataGrid 中使用 p:graphicImage 显示图像列表
- android - 从已发送的邮箱中删除已发送的短信,无法作为收件箱使用
- terraform - 如何将 azure sql 数据库连接到 terraform 中的功能应用程序
- performance - Kafka ACL:性能和内存影响
- angular - 我想在 Angular 7 中使用生物指纹扫描仪
- java - 使用父对象对链式对象进行排序