jquerytwitter-bootstrapbootstrap-datetimepickereonasdan-datetimepicker

Bootstrap datetimepicker: show calendar pop-up when a user clicks on input


Is there a way to show calendar when a user clicks on input as well? Right now I have to click on the calendar icon which will then show calendar.

HTML:

<div class='input-group date' id='datetimepicker1'>
  <input type='text' class="form-control" />
  <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
  </span>
</div>

JavaScript:

$(function() {
  $('#datetimepicker1').datetimepicker();
});


Example: https://jsfiddle.net/8jpmkcr5/81/


Solution

  • It's a little tricky, but you need to move the datetime picker to the input and manually handle the click on the input group addon. For example:

    $(function() {
      $('.datetimepicker').datetimepicker();
      
      $('.datetimepicker-addon').on('click', function() {
      	$(this).prev('input.datetimepicker').data('DateTimePicker').toggle();
      });
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script>
    
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css" rel="stylesheet"/>
    
    
    <div class='input-group date'>
      <input type='text' class="form-control datetimepicker" />
      <span class="input-group-addon datetimepicker-addon">
        <span class="glyphicon glyphicon-calendar"></span>
      </span>
    </div>