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 に渡すオプションが見つかりませんでした(これも使用することをお勧めします)。 daterangepicker を使用するように設定されている場合は、機能させてください。

// 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 を使用すると柔軟性が向上します。これに加えて、これも単純な問題に対するハックなアプローチです。お気付きかもしれませんが、この例では、開始日を変更する方法のみを示しました。終了日を変更する場合は、正しいカレンダーでこの機能を再現する必要があります。

于 2015-08-17T14:59:37.880 に答える
0

change() メソッドを試す

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

change イベントは、要素の値が変更されたときに発生します (フォーム フィールドでのみ機能します)。

于 2015-08-17T14:43:10.133 に答える