bootstrap-datepicker:选择特定日期时显示DIV

时间:2017-11-14 21:57:12

标签: javascript jquery datepicker bootstrap-4 bootstrap-datepicker

bootstrap-datepicker plugin与嵌入式标记一起使用...

如何在选择特定日期时显示/显示DIV元素,并在选择其他日期时再次隐藏它?

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker.min.css" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>

  <style>
    #example {
      display: none;
      color: green;
      font-weight: bold;
    }

  </style>
</head>

<body>
  <div id="example">Yay my favorate day!</div>
  Please select <b>11/07/2017</b> to show an example:
  <br />
  <div id="myCalendar"></div>
  <input type="hidden" id="hiddenInput">

  <script>
    $(function() {
      $('#myCalendar').datepicker({
        format: 'mm-dd-yyyy',
        weekStart: 1,
        maxViewMode: 2,
        todayBtn: "linked",
        daysOfWeekHighlighted: "0,6",
        todayHighlight: true
      }).on('changeDate', function() {
        $('#hiddenInput').val(
          $('#myCalendar').datepicker('getFormattedDate')
        );
      }).change(function() {
        $("#example").toggle($(this).val() === "11-07-2017");
      });
    });

  </script>
</body>

Demo on JSFiddle

3 个答案:

答案 0 :(得分:1)

您可以通过检查datepicker的值来执行此操作。在本例中,我使用11/07/2017作为您要检查的日期(也就是2017年11月17日)。

$(function(){
   $('.datepicker').datepicker({
      format: 'mm-dd-yyyy'
    }).change(function () {
      $("#example").toggle($(this).val() === "11-07-2017");
    });
});
#example {
  display:none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>
<div id="example">Yay my favorate day!</div>
Please select <b>11/07/2017</b> to show an example:
<br />
<input type="text" class="datepicker" placeholder="Date..." name="date">

答案 1 :(得分:0)

不同的框架(和vanilla js)有几种方法。例如,一个简单的,如果你使用angularjs(不需要太多的javascript代码):

<input data-provide="datepicker" ng-model='yourdate'>
<div id='divExample' ng-show='yourdate==somevalue'></div>

答案 2 :(得分:0)

您可以使用changeDate事件,docs说:

  

所有事件都有附加到传递给任何事件处理程序的事件对象的额外数据

     
      
  • date:相关的Date对象,在本地时区。对于多日期选择器,这将是最新选择的日期。
  •   

您可以查看所选日期(使用getDate()getMonth()getFullYear()等设置器)以及使用jQuery show()hide()。< / p>

这是一个实时样本:

$(function() {
  $('#myCalendar').datepicker({
    format: 'mm-dd-yyyy',
    weekStart: 1,
    maxViewMode: 2,
    todayBtn: "linked",
    daysOfWeekHighlighted: "0,6",
    todayHighlight: true
  }).on('changeDate', function(e) {
    if( e.date && e.date.getDate() == 7 &&
        e.date.getMonth() == 10 && 
        e.date.getFullYear() == 2017 ){
      $("#example").show();
    } else {
      $("#example").hide();
    }
    $('#hiddenInput').val(
      $('#myCalendar').datepicker('getFormattedDate')
    );
  });
});
#example {
  display: none;
  color: green;
  font-weight: bold;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>

<div id="example">Yay my favorate day!</div>
Please select <b>11/07/2017</b> to show an example:
<br />
<div id="myCalendar"></div>
<input type="hidden" id="hiddenInput">