Bootstrap datetimepicker помнить - PullRequest
0 голосов
/ 27 апреля 2018

Я использую https://github.com/Eonasdan/bootstrap-datetimepicker в своем веб-приложении для отображения datetimepicker.

У меня есть 2 элемента управления - startDate and endDate Я хочу установить minDate для 'endDate' больше 'startDate'.

Этот плагин предоставляет опцию 'minDate'. Однако, как мне установить значение для него из другого поля datetimepicker?

Я пытался сделать следующее.

$('#start-date-time-datepicker').datetimepicker({
    minDate: moment(),
    sideBySide: true,
    daysOfWeekDisabled: [0,6]
});

$('#end-date-time-datepicker').datetimepicker({
    minDate: $('#start-date-time-datepicker').val(),
    sideBySide: true,
    daysOfWeekDisabled: [0,6]
});

Но это не работает.

Может кто-нибудь дать несколько указателей?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Вам нужно привязать сборщиков даты

$(function () {
    $('#start_date').datetimepicker({
     // custom config
    });
    $('#end_date').datetimepicker({
        // custom config
    });
    $("#start_date").on("dp.change", function (e) {
        $('#end_date').data("DateTimePicker").minDate(e.date);
    });
    $("#end_date").on("dp.change", function (e) {
        $('#start_date').data("DateTimePicker").maxDate(e.date);
    });
});

ref: http://eonasdan.github.io/bootstrap-datetimepicker/#linked-pickers

0 голосов
/ 27 апреля 2018

Вы можете использовать либо $("#start-date-time-datepicker").data("DateTimePicker").date(), либо $("#start-date-time-datepicker").find("input").val(), чтобы получить желаемое значение.

Вот простая демонстрация.

var $start = $('#start-date-time-datepicker'),
    $end1 =  $('#end-date-time-datepicker1'),
    $end2 =  $('#end-date-time-datepicker2')

$start.datetimepicker({
    minDate: moment(),
    sideBySide: true,
    daysOfWeekDisabled: [0,6]
});

$end1.datetimepicker({
    minDate: $start.data("DateTimePicker").date(),
    sideBySide: true,
    daysOfWeekDisabled: [0,6]
});

$end2.datetimepicker({
    // note that this is not in a recognized RFC2822 or ISO format
    // $("#start-date-time-datepicker").find("input").val()

    minDate: new Date($start.find("input").val()),
    sideBySide: true,
    daysOfWeekDisabled: [0,6]
});

$start.on('dp.change', function(){
  // $start input change event
  var startDate = $(this).data("DateTimePicker").date();
  
  // set $end1 and $end2 to $start's date and set the minDate
  $end1.data("DateTimePicker").options({
    date: startDate,
    minDate: startDate
  })
  
  $end2.data("DateTimePicker").options({
    date: startDate,
    minDate: startDate
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>


<div class='input-group date' id='start-date-time-datepicker'>
  <input type='text' class="form-control" />
  <span class="input-group-addon">
        <span class="glyphicon glyphicon-calendar"></span>
  </span>
</div>
<div class='input-group date' id='end-date-time-datepicker1'>
  <input type='text' class="form-control" />
  <span class="input-group-addon">
        <span class="glyphicon glyphicon-calendar"></span>
  </span>
</div>
<div class='input-group date' id='end-date-time-datepicker2'>
  <input type='text' class="form-control" />
  <span class="input-group-addon">
        <span class="glyphicon glyphicon-calendar"></span>
  </span>
</div>
...