在引导日期选择器中禁用过去的日期

时间:2016-12-28 16:50:21

标签: javascript jquery twitter-bootstrap bootstrap-datepicker

我使用了源自以下的日期输入表格:

  

Youderian,C。How to Add a Date Picker to a Bootstrap Form FormDen 。 [博客]。 2015年10月27日

但是我无法禁用过去的日期。我试过以下几点;根据GitHub中的an issue,但它并不适用于我。



CoreTextLabel

$(document).ready(function() {
  var date_input = $('input[name="date"]'); //our date input has the name "date"
  var container = $('.bootstrap-iso form').length > 0 ? $('.bootstrap-iso form').parent() : "body";
  date_input.datepicker({
    format: 'mm/dd/yyyy',
    container: container,
    todayHighlight: true,
    autoclose: true,
  })
})
$(function() {
  var nowDate = new Date();
  var today = new Date(nowDate.getFullYear(), nowDate.getMonth(),
    nowDate.getDate(), 0, 0, 0, 0);
  $('#date').datepicker({
    startDate: today
  });
})




5 个答案:

答案 0 :(得分:4)

您可以在首次将startDate转换为日期选择器字段时将setStartDate添加到配置中,也可以使用$(document).ready(function() { var dateInput = $('input[name="date"]'); // Our date input has the name "date" var container = $('.bootstrap-iso form').length > 0 ? $('.bootstrap-iso form').parent() : 'body'; dateInput.datepicker({ format: 'mm/dd/yyyy', container: container, todayHighlight: true, autoclose: true, startDate: truncateDate(new Date()) // <-- THIS WORKS }); $('#date').datepicker('setStartDate', truncateDate(new Date())); // <-- SO DOES THIS }); function truncateDate(date) { return new Date(date.getFullYear(), date.getMonth(), date.getDate()); }设置属性。

选择其中任何两个。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.5/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.min.js"></script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/css/tether.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.5/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker.min.css" rel="stylesheet"/>

<div class="bootstrap-iso">
  <div class="container-fluid">
    <div class="row">
      <div class="col-md-6 col-sm-6 col-xs-12">
        <form class="form-horizontal" method="post">
          <div class="form-group ">
            <label class="control-label col-sm-2" for="date">
              Date
            </label>
            <div class="col-sm-10">
              <input class="form-control" id="date" name="date" placeholder="MM/DD/YYYY" type="text" />
            </div>
          </div>
          <div class="form-group">
            <div class="col-sm-10 col-sm-offset-2">
              <button class="btn btn-primary " name="submit" type="submit">
                Submit
              </button>
            </div>
          </div>
        </form>
      </div>
    </div>
  </div>
</div>
:not

答案 1 :(得分:0)

jQuery Date Picker - disable past dates

以下是可以帮助您的链接。

你可以通过mindate和maxdate来做到这一点。

答案 2 :(得分:0)

您可以使用pdGeodstartDate,例如endDate'+2d'

在您的CodePen链接中:

'-2m'

How to restrict the selectable date ranges in Bootstrap Datepicker?

答案 3 :(得分:0)

轻松尝试:使用minDate

#include <iostream>

int main()
{
    for (int i = 1; i<=100; i++)
    {
        switch(i % 7)
        {
            case 0:
                std::cout << i << std::endl;
                break;
            default:
                break;
        }
    }
    return 0;
}

答案 4 :(得分:-1)

您可以通过设置 startDate 属性来停用过去的日期。无需单独的功能。

date_input.datepicker({
    format: 'mm/dd/yyyy',
    container: container,
    todayHighlight: true,
    autoclose: true,
    startDate: new Date()
})