Получение значения внутри функции для использования вне функции - PullRequest
2 голосов
/ 11 апреля 2019

Я использую два загрузчика datetimepicker, первый - startDate, а второй - enddate. Проблема в том, что я должен выбрать startdate, а в enddate автоматически указывается минимальная дата (дата, которую я выбираю в startdate).А в datatimepicker из enddate максимум даты должен быть +7 дней.Можете ли вы помочь мне, пожалуйста?

Я пытался получить дату в первом datatimepicker6, и я сделал это, но я не знаю, как использовать в endtime datepicker datatimepicker7.Ниже приведен код:

//these part is to pick the date and it work
$("#datetimepicker6").on("dp.change", function(e) {
    var drr = $('#datetimepicker6').data('date')
    alert(drr);
});
      $('#datetimepicker6').datetimepicker({
        format: 'DD.MM.YYYY HH:mm:ss',

        keyBinds: {'delete': null}
      });

//I want to use that result as the minimum of this datatimepicker and to add +7 days as maximum

      $('#datetimepicker7').datetimepicker({
        format: 'DD.MM.YYYY HH:mm:ss',
        //useCurrent: false,
      //maxDate: drr,
        keyBinds: {'delete': null},


        useCurrent: false //Important! See issue #1075
      });

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Нет необходимости переносить переменную в другую функцию, вы можете просто объявить переменную внутри события, работая Fiddle .

$(function () {
                    $('#datetimepicker6').datetimepicker({
                        format: 'DD.MM.YYYY HH:mm:ss',
                        keyBinds: {'delete': null}
                    });


                  $('#datetimepicker7').datetimepicker({
                    format: 'DD.MM.YYYY HH:mm:ss',
                    useCurrent: false,
                    keyBinds: {'delete': null},
                    useCurrent: false //Important! See issue #1075
                  });

                  $("#datetimepicker6").on("dp.change", function(e) {
                        var drr = $('#datetimepicker6').data('date');
                        var endDate = new Date(e.date);
                        endDate.setDate(endDate.getDate()+7);
                        $('#datetimepicker7').data("DateTimePicker").minDate(drr);
                        $('#datetimepicker7').data("DateTimePicker").maxDate(endDate);
                });
         });
2 голосов
/ 11 апреля 2019

добавьте это в событие onchange, оно будет работать

            e.date.add(7, 'day'); 
            $('#datetimepicker7').data("DateTimePicker").minDate(e.date);
            $('#datetimepicker7').data("DateTimePicker").date(e.date);

полный код для обмена

 $("#datetimepicker6").on("dp.change", function (e) {
         //var val = $('#datetimepicker6').data('date');     
        e.date.add(7, 'day'); 
    $('#datetimepicker7').data("DateTimePicker").minDate(e.date);     
   $('#datetimepicker7').data("DateTimePicker").date(e.date);

                });                
            });

посмотрите демо здесь

...