6

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/

informatik01
  • 16,038
  • 10
  • 74
  • 104
I'll-Be-Back
  • 10,530
  • 37
  • 110
  • 213
  • 1
    Possible duplicate of [Bootstrap DatetimePicker Selector Issue](https://stackoverflow.com/questions/34012241/bootstrap-datetimepicker-selector-issue) – VincenzoC Jul 28 '17 at 14:26

2 Answers2

16

You can simply use allowInputToggle option setting it to true (Default: false). As docs says:

If true, the picker will show on textbox focus and icon click when used in a button group

Here a working live sample:

$('#datetimepicker1').datetimepicker({
  allowInputToggle: true
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/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' id="datetimepicker1">
    <input type='text' class="form-control" />
    <span class="input-group-addon">
        <span class="glyphicon glyphicon-calendar"></span>
    </span>
</div>
VincenzoC
  • 30,117
  • 12
  • 90
  • 112
7

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>
DavidG
  • 113,891
  • 12
  • 217
  • 223
  • 4
    There is no need _manually handle the click on the input group addon_ the component has the [`allowInputToggle`](https://eonasdan.github.io/bootstrap-datetimepicker/Options/#allowinputtoggle) option to achieve this functionality. – VincenzoC Jul 28 '17 at 13:14
  • Well your answer now doesn't work if you click on the addon icon. – DavidG Jul 28 '17 at 13:15
  • I've fixed my answer, my first comment is correct, the `allowInputToggle` option is enough. The problem was that I used the HTML of your snippet that has the `datetimepicker` class in the wrong place, that component should be initialized from the parent element to make `allowInputToggle` work as expected (`
    ` in your case). Anyway, thank you for pointing out the problem with the first version of my answer, I learned better how the datetimepicker works :)
    – VincenzoC Jul 28 '17 at 14:26