简体   繁体   English

DateRangePicker-所选日期范围未正确突出显示

[英]DateRangePicker - Selected date range not getting correctly highlighted

 $("input[name='MyDaterange']").daterangepicker({ ranges: { 'This Week': [moment().day("Sunday"), moment().day("Saturday")], 'This Month': [moment().startOf('month'), moment().endOf('month')], 'This Year': [moment().startOf('year'), moment().endOf('year')], 'Year to Date': [moment().startOf('year'), moment()] }, maxDate: moment() // this is required }); 
 <script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" /> <input type="text" name="MyDaterange" id="MyDaterange" value="" /> 

I am using daterangepicker for selecting predefined dates. 我正在使用daterangepicker选择预定义的日期。 When I select Year To Date another option This Year gets highlighted. 当我选择“ 年初至今”时,另一个选项“ 今年”突出显示。

  1. How to make only that range active which was clicked. 如何仅激活被单击的范围。
  2. Is this a bug with daterangepicker? 这是daterangepicker的错误吗?

Code: 码:

$("input[name='MyDaterange']").daterangepicker({
  ranges: {
    'This Week': [moment().day("Sunday"), moment().day("Saturday")],
    'This Month': [moment().startOf('month'), moment().endOf('month')],
    'This Year': [moment().startOf('year'), moment().endOf('year')],
    'Year to Date': [moment().startOf('year'), moment()]
  },
  maxDate: moment() // this is required
});

Since you added maxDate: moment() it means, all dates after today is not counted, it means: 由于您添加了maxDate: moment()因此,不计算今天之后的所有日期,这意味着:

  • when you select `This Year' , you will get from jan 01 to today . 当您选择“今年”时,您将从1月1日到今天。
  • when you select `Year to Date' , you will get from jan 01 to today . 当您选择“年初至今”时,您将从1月1日到今天。

They are the same, and since the plugin check the start and the end date to check for activated range, 'This year' would always the first activated. 它们是相同的,并且由于插件会检查开始日期和结束日期以检查激活范围,因此“今年”将始终是第一个激活的年份。

Solution: 解:

  • remove 'this year' since you use maxDate = today, it's not really useful 因为您今天使用的是maxDate =,所以删除“今年”,这并不是真的有用

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

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