获取函数内的值以便在函数外部使用

问题描述 投票:2回答:2

我使用两个datetimepicker Bootstrap,第一个是startDate,第二个是enddate,问题是我应该选择startdate,并在enddate自动为最小日期(我在startdate中选择的日期)。并且在enddate最大日期的datatimepicker中为+7天。你能帮我吗?

我试图在名为datetimepicker的第一个datetimepicker中获取日期,我做了但我不知道如何在名为datatimepicker7的enddate datetimepicker中使用。以下是代码:

//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
      });
javascript jquery bootstrap-4 datetimepicker
2个回答
2
投票

在你的onchange事件中添加它将起作用

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

onchange的完整代码

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

                });                
            });

check the demo here


2
投票

无需将变量携带到另一个函数中,您只需在事件中声明一个变量,就可以使用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);
                });
         });
© www.soinside.com 2019 - 2024. All rights reserved.