引导日期时间选择器不更新第二次

Posted

技术标签:

【中文标题】引导日期时间选择器不更新第二次【英文标题】:Bootstrap datetime picker not updating second time 【发布时间】:2020-04-21 17:40:54 【问题描述】:

我想设置一个名为 dropoff_date_picker 的开始日期选择器,而另一个是pickup_time_picker。当我第一次从pickup_time_picker 中选择日期时,dropoff_date_picker 开始日期已更新并且工作正常,但是如果用户从pickup_time_picker 更改日期,则 dropoff_time_picker 将不会更新,并且第二次将无法正常工作。下面是我的代码 sn-p。我不知道我在哪里做错了。我已经使用了 'change'、dp.change'、'change.dp' 和 'changeDate',但没有任何效果。

$("#pickup_time_picker").datetimepicker(
  format: "dd MM yyyy - hh:ii",
  autoclose: true,
  todayBtn: true,
  startDate: today,
  minuteStep: 10,
  pickerPosition: "bottom-left"
).on('change.dp', function(e) 

  var fromDate = $('#pickup_time_feild').val().split(" ");
  var fromTime = $('#pickup_time_feild').val().split(" - ");
  var fromMinutes = fromTime[1].split(":");
  var dat = new Date(fromDate[0] + ' ' + fromDate[1] + ' ' + fromDate[2] + '');
  var present = new Date(fromDate[2], dat.getMonth(), fromDate[0], fromMinutes[0], fromMinutes[1]);
  enddate = new Date(present.getFullYear(), present.getMonth() - 1, present.getDate(), present.getHours(),
    present.getMinutes(), 0, 0);

  alert(present);

  $('#dropoff_time_picker').datetimepicker(
    format: "dd MM yyyy - hh:ii",
    autoclose: true,
    todayBtn: true,
    startDate: present,
    minuteStep: 10,
    pickerPosition: "bottom-left"
  );

);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="date_wrap">
  <input type="date" id="pickup_time_picker" />
  <input type="date" id="dropoff_time_picker" />
</div>

【问题讨论】:

尝试在#dropoff_time_picker 上设置initialDate 而不是startDate 这解决了我的问题$('#dropoff_time_picker').datetimepicker('setStartDate',present); 干得好。将其发布为您问题的答案,并为其他人提供正确的代码。 【参考方案1】:

我只是在最后添加了以下行,它可以工作。

$('#dropoff_time_picker').datetimepicker('setStartDate',present);

以下是完整的代码。

$("#pickup_time_picker").datetimepicker(
   format: "dd MM yyyy - hh:ii",
   autoclose: true,
   todayBtn: true,
   startDate: today,
   minuteStep: 10,
   pickerPosition: "bottom-left"
).on('change.dp', function(e) 

   var fromDate = $('#pickup_time_feild').val().split(" ");
   var fromTime = $('#pickup_time_feild').val().split(" - ");
   var fromMinutes = fromTime[1].split(":");
   var dat = new Date(fromDate[0] + ' ' + fromDate[1] + ' ' + fromDate[2] + '');
   var present = new Date(fromDate[2], dat.getMonth(), fromDate[0], fromMinutes[0], 
   fromMinutes[1]);
   enddate = new Date(present.getFullYear(), present.getMonth() - 1, 
   present.getDate(), present.getHours(),
   present.getMinutes(), 0, 0);
   $('#dropoff_time_picker').datetimepicker(
   format: "dd MM yyyy - hh:ii",
   autoclose: true,
   todayBtn: true,
   startDate: present,
   minuteStep: 10,
   pickerPosition: "bottom-left"
  );
 $('#dropoff_time_picker').datetimepicker('setStartDate',present);
);

【讨论】:

以上是关于引导日期时间选择器不更新第二次的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个引导日期选择器不显示日期选择器?

引导日期选择器不工作

引导日期选择器不起作用

模式中的引导日期选择器不起作用

日期选择器不工作/显示 - Bootstrap 5

第二个 jQuery 加载日期选择器不工作