1

我想在用户选择日期范围时更改值,

如果用户离开弹出窗口并忘记点击应用按钮,

该值应保存而不会丢失。

怎么办呢,谢谢~

javascript

:javascript
  $(document).ready(function() {
    var days_of_week =$.parseJSON('#{escape_javascript(t('date.abbr_day_names').to_json)}');
    $('#date-range-picker').daterangepicker(
      {
        locale: {
          daysOfWeek: days_of_week,
          applyLabel: "#{escape_javascript t('date_range_picker.apply')}",
          cancelLabel: "#{escape_javascript t('date_range_picker.cancel')}",
          fromLabel: "#{escape_javascript t('date_range_picker.depart_date')}",
          toLabel: "#{escape_javascript t('date_range_picker.return_date')}",
        },
        format: 'YYYY/MM/DD',
        dateLimit: { days: 30 }
      },
      function(start, end, label) {
        console.log(start.toISOString(), end.toISOString(), label);
      }
    );
  });

4

2 回答 2

0

我找不到像 jQuery ui 的日期选择器有http://api.jqueryui.com/datepicker/#option-onSelect(我也推荐使用)那样为 onSelect 传递的选项,但我可以向您展示一个 hacky 示例如果您设置使用日期范围选择器,请使其工作。

// when a start date is clicked
$('.calendar.left .available').click(function(e) {

  // get the changed date from the input field on the calendar
  var selectedStartDate = $('[name="daterangepicker_start"]').val();

  // get current range to modify
  var currentRange = $('[name="daterange"]').val();

  // set new range value
  $('[name="daterange"]').val(rangeFromNewStart(selectedStartDate, currentRange);

  // close the dialog
  $('.daterangepicker').css('display', 'none');
});

function rangeFromNewStart(startValue, currentRange){
  startValue + ' -' + currentRange.split('-')[1];
};

然而,正如我之前所说,您可以使用 jQuery ui 获得更大的灵活性。除此之外,这又是一个简单问题的 hacky 方法。如果您注意到,在此示例中,我仅向您展示了如何更改开始日期。如果您想修改结束日期,则必须使用正确的日历重现此功能。

于 2015-08-17T14:59:37.880 回答
0

尝试更改()方法

http://www.w3schools.com/jquery/event_change.asp

change 事件在元素的值发生更改时发生(仅适用于表单字段)。

于 2015-08-17T14:43:10.133 回答