javascript - 如果设置了 defaultDate,则链接的 Datetimepicker 不会更新
问题描述
我正在使用带有一对链接选择器的 datetimepicker。
在初始加载时,“start_date”应显示当前日期,“expiry_date”应显示“start_date + 30 天”。这按预期工作。However when a new 'start_date' is selected the expiry should always default to be 30 days ahead.
这就是我所拥有的:
$(function () {
function plusCalendarMonthToDate(e) {
return moment(e.date).add(30, 'days').millisecond(0).second(0).minute(0).hour(0)
}
defaultStartDate = new Date();
$('#datetimepicker-start').datetimepicker({
format: 'YYYY-MM-DD 00:00:00',
minDate: defaultStartDate,
defaultDate: defaultStartDate
});
$('#datetimepicker-expiry').datetimepicker({
useCurrent: false,
format: 'YYYY-MM-DD 00:00:00',
minDate: $('#datetimepicker-start').val(),
defaultDate: plusCalendarMonthToDate(defaultStartDate)
});
$("#datetimepicker-start").on("dp.change", function (e) {
$('#datetimepicker-expiry').data("DateTimePicker").minDate(e.date);
// when a start_date is selected, set the expiry to 30 days plus
plusCalendarMonth = plusCalendarMonthToDate(e);
$('#datetimepicker-expiry').data("DateTimePicker").defaultDate(plusCalendarMonth);
});
$("#datetimepicker-expiry").on("dp.change", function (e) {
$('#datetimepicker-start').data("DateTimePicker").maxDate(e.date);
});
});
当我选择新的 start_date 时,expiry_date 不会更新。我认为这是因为我已经在初始化中设置了“defaultDate”,如果我删除它,那么该功能就会起作用,但是当我失去了 expiry_date 的初始默认值时。如何覆盖初始的 defaultDate?
解决方案
似乎解决方案是使用'date()'而不是'defaultDate()':
$('#datetimepicker-expiry').data("DateTimePicker").date(plusCalendarMonth)
推荐阅读
- .net - 是否可以增加 HttpClient 中的最大 URI 长度?(无效的 URI:uri 字符串太长)
- javascript - Promise 链接错误不会正确传递给 catch
- python - 删除或修改连续的重复行
- swift - 如何快速禁用 UI 键盘键
- c# - EF Core 3.1 流畅的 API
- python-3.x - 我想获得特定属性的结果?为什么我会收到此错误
- flutter - 有没有更好的方法来使用 BLoC 构建功能?
- python - 在 Dash DataTable 中插入形状
- javascript - 从 REACT JS 中的 Firestore 数据库获取嵌套数据
- php - wordpress wp-db.php中出现奇怪的内存错误