Bootstrap 3 DatePicker - 如何在不重置选择器配置的情况下重置所选日期?

Bootstrap 3 DatePicker - How to reset selected date without resetting the picker configuration?

我正在尝试在单击按钮时重置 selected 日期,但到目前为止我只能清除 input 元素,而没有选择器上的实际日期。以下代码重置了所有内容,包括配置和日期,所以这显然不是我需要的。

$('#datepicker').datepicker('update',''); //resets everything

详细说明:用户只能 select 从当天算起 7 天的日期。还有一个按钮使用户能够从选择器中清除 selected 日期,并 select 一个新的。现在,清除功能只能从选择器中清除输入元素(但不能清除选择器元素中的实际日期),或者清除 selection 与选择器配置(例如 startDate: "+7d "。我只想清除 selected 日期,而不重置所有内容。

jsfiddle

这是我到目前为止想出的:
HTML:

<div id="myDatepicker" class="input-group date">
   <input type="text" class="form-control" id="datepick">
   <span class="input-group-addon">
   <i class="fa fa-calendar"></i>
   </span>
   <a href="#" id="duration_tag"></a>
</div>
<button type="button" id="clear">clear</button>

jQuery:

$(document).ready(function() {

$("#clear").click(function(){
    $('#datepick').val(" ").datepicker({startDate: "+7d"});                  
});

$('#myDatepicker').datepicker({
                    startDate: "+7d",
                });

$('#myDatepicker').on('changeDate', function(e){
     $(this).datepicker('hide');
});

});

您需要获取当前 datePicker 实例并对其调用 setDate(null)。你可以这样做:

$("#clear").click(function(){
  $('#myDatepicker').data('datepicker').setDate(null);
});

已更新 fiddle:http://jsfiddle.net/4L6fhjLf/2/

$('#myDatepicker').data('DateTimePicker').date(null);

出于某种原因,上面的例子都不适合我,但下面的例子:

$('#myDatepicker').data('DateTimePicker').clear(); // clears input value 

这实际上与 答案相同,但对我正在寻找的内容不起作用。

我还需要更改 viewMode 以重新开始选择器过程,在我的情况下,这是几十年的时间,您可能需要一个不同的 viewMode 选项:

$('#myDatepicker').data('DateTimePicker').clear().viewMode('decades')