繁体   English   中英

更新 Twitter Bootstrap 的日期范围选择器的选定日期

[英]Update the selected dates of date range picker for Twitter Bootstrap

我正在使用Dan Grossman 的Twitter Bootstrap日期范围选择器

初始化时,可以设置预定义的值,如 startDate 和 endDate。 以后是否可以以类似的方式手动更新值?

我想要做的是使用我保存的过滤器“加载”日期范围选择器,其中包括开始和结束日期(而不是通过定义预定义的范围)。 只是通过 jQuery 更新日期范围选择器的字段不会更新日历的实际选择。

我想我应该在初始化日期范围选择器时做这样的事情:

var reportrange = $('#reportrange').daterangepicker(),
DateRangePicker = reportrange.data('daterangepicker');

但是,如何使用 DateRangePicker 手动更新日期范围选择器和日历与新选择的日期?

此组件的最新版本提供了更新开始/结束日期的方法:

$("#reportrange").data('daterangepicker').setStartDate(startDate);
$("#reportrange").data('daterangepicker').setEndDate(endDate);

您不必自己调用更新方法,因为它们将处理所有这些。

我走在正确的轨道上。 我可以通过以下方式使用 DateRangePicker 来更新日期:

DateRangePicker.startDate = moment(startDate.toJSON().slice(0, 10), DateRangePicker.format);
DateRangePicker.endDate = moment(endDate.toJSON().slice(0, 10), DateRangePicker.format);
DateRangePicker.updateView();
DateRangePicker.cb(DateRangePicker.startDate, DateRangePicker.endDate);
DateRangePicker.updateCalendars();

谢谢。 您的一段代码帮助我找到了一种在页面中动态设置新日期范围的方法。

不过有一件事。 似乎您的方式会更新页面中的所有 DateRangePickers(假设您有多个)。

此外,DateRangePicker 原型对象可能无法在您的页面中访问(如果插件放置在外部 JS 文件中)。

这是一种仅更新链接到 jQuery 选择器的方法。

// Init DateRangePicker
$('#reportrange').daterangepicker({/* params */}),
...

// Update params dynamically after init.
// In this case, date format has been set to YYYY-MM-DD on init.
$("#reportrange").data().daterangepicker.startDate = moment( '2013-12-24', datepicker.data().daterangepicker.format );
$("#reportrange").data().daterangepicker.endDate = moment( '2013-12-25', datepicker.data().daterangepicker.format );
$("#reportrange").data().daterangepicker.updateCalendars();

Guillaume Lavoie 回答的附加信息。 这段代码对我有用:

orders = { order_sdate : "2015-01-01", order_edate : "2015-01-20" };

jQuery( "#order_date" ).val( order.order_sdate + " - " + order.order_edate );
jQuery( "#order_date" ).data('daterangepicker').startDate = moment( order.order_sdate, "YYYY-MM-DD" );
jQuery( "#order_date" ).data('daterangepicker').endDate = moment( order.order_edate, "YYYY-MM-DD" );
jQuery( "#order_date" ).data('daterangepicker').updateView();
jQuery( "#order_date" ).data('daterangepicker').updateCalendars();

这对我有用:)

// Init DateRangePicker
$('#reportrange').daterangepicker({/* params */}),
...

// Update params dynamically after init.
// In this case, date format has been set to YYYY-MM-DD on init.
$("#reportrange").data().daterangepicker.startDate = moment( '2013-12-24', datepicker.data().daterangepicker.format );
$("#reportrange").data().daterangepicker.endDate = moment( '2013-12-25', datepicker.data().daterangepicker.format );
$("#reportrange").data().daterangepicker.updateCalendars();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM