DateRangePicker - выбранный диапазон дат не выделяется правильно - PullRequest
0 голосов
/ 06 июля 2018

$("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="" />

Я использую daterangepicker для выбора предопределенных дат. Когда я выбираю Year To Date , другой вариант This Year выделяется.

  1. Как сделать активным только тот диапазон, по которому щелкнули.
  2. Это ошибка с daterangepicker?

Код:

$("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
});

1 Ответ

0 голосов
/ 09 июля 2018

Поскольку вы добавили maxDate: moment(), это означает, что все даты после сегодняшнего дня не учитываются, это означает:

  • когда вы выберете `This Year ', вы получите с 01 января по сегодняшний день.
  • когда вы выберете «Год к дате», вы получите с 01 января по сегодняшний день.

Они одинаковы, и, так как плагин проверяет начальную и конечную дату, чтобы проверить активированный диапазон, «Этот год» всегда будет первым активированным.

Решение:

  • удалить «в этом году», так как вы используете maxDate = сегодня, это не очень полезно
...