【问题标题】:Bootstrap Datepicker not clearing for date range引导日期选择器未清除日期范围
【发布时间】:2018-04-03 19:12:45
【问题描述】:

我在一个项目中使用这个datepicker(版本 1.6.1)。我有一个按钮可以清除表单中的所有输入和according to the documentation,我需要做的就是

$(".selector").datepicker("clearDates");

这适用于单个日期选择器字段,但不适用于日期范围。

$(document).ready(function() {
  $(".date").datepicker({
    todayBtn: "linked",
    daysOfWeekHighlighted: "0,6",
    autoclose: true,
    todayHighlight: true,
    orientation: "bottom",
    format: "mm/dd/yyyy"
  });

  $(document).on("click", "button", function(e) {
    e.preventDefault();

    $(".date").datepicker("clearDates");
  })
});
body {
  padding: 20px;
}

.input-group {
  margin-bottom: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/css/bootstrap-datepicker.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class='input-group date'>
  <input name='single' class='single basic-input form-control' placeholder='MM/DD/YYYY' autocomplete='off'>
  <div class='input-group-addon'><span class='glyphicon glyphicon-calendar'></span></div>
</div>

<div class='input-group input-daterange date'>
  <input name='start' class='start basic-input form-control' placeholder='MM/DD/YYYY' autocomplete='off'>
  <div class='input-group-addon'>to</div>
  <input name='end' class='end basic-input form-control' placeholder='MM/DD/YYYY' autocomplete='off'>
</div>

<button id='clear-params' type='button' class='btn btn-warning btn-block' aria-label='Clear'>
  <span>Clear</span>
</button>

这里是Fiddle,如果您喜欢在那里调试。

【问题讨论】:

    标签: javascript jquery html datepicker


    【解决方案1】:

    因为您在日期范围内缺少selector classes

    $(document).ready(function() {
      $(".date").datepicker({
        todayBtn: "linked",
        daysOfWeekHighlighted: "0,6",
        autoclose: true,
        todayHighlight: true,
        orientation: "bottom",
        format: "mm/dd/yyyy"
      });
    
      $(document).on("click", "button", function(e) {
        e.preventDefault();
    
        $(".dateselector").datepicker("clearDates");
      })
    });
    body {
      padding: 20px;
    }
    
    .input-group {
      margin-bottom: 10px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/js/bootstrap-datepicker.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/css/bootstrap-datepicker.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
    <div class='input-group date'>
      <input name='single' class='single basic-input form-control dateselector' placeholder='MM/DD/YYYY' autocomplete='off'>
      <div class='input-group-addon'><span class='glyphicon glyphicon-calendar'></span></div>
    </div>
    
    <div class='input-group input-daterange date'>
      <input name='start' class='start basic-input form-control dateselector' placeholder='MM/DD/YYYY' autocomplete='off'>
      <div class='input-group-addon'>to</div>
      <input name='end' class='end basic-input form-control dateselector' placeholder='MM/DD/YYYY' autocomplete='off'>
    </div>
    
    <button id='clear-params' type='button' class='btn btn-warning btn-block' aria-label='Clear'>
      <span>Clear</span>
    </button>

    【讨论】:

    • 该死。一直以来,我认为该类必须位于父元素上,而不是输入本身。谢谢!
    • 您的编辑实际上搞砸了。如果删除父元素上的 date 类,这两个日期范围将不再关联。你的第一个答案是正确的。您必须在父级和两个输入上都有.date
    • 不..你不必要地在 div 上运行它..如果你需要你可以在输入上使用一些通用类
    • @uom-pgregorio 检查更新的答案,使用普通类dateselector
    • 是的,我更喜欢这个版本。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2017-01-21
    相关资源
    最近更新 更多