【问题标题】:Bootstrap datetimepicker: show calendar pop-up when a user clicks on inputBootstrap datetimepicker:当用户点击输入时显示日历弹出窗口
【发布时间】:2017-07-28 11:03:34
【问题描述】:

当用户点击 input 时,有没有办法显示日历?现在我必须点击日历图标,然后它会显示日历。

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();
});


示例:https://jsfiddle.net/8jpmkcr5/81/

【问题讨论】:

标签: jquery twitter-bootstrap bootstrap-datetimepicker eonasdan-datetimepicker


【解决方案1】:

您可以简单地使用allowInputToggle 选项将其设置为true(默认值:false)。正如文档所说:

如果true,当在按钮组中使用时,选择器将显示在文本框焦点和图标点击上

这是一个工作现场样本:

$('#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>

【讨论】:

  • 完美运行。谢谢
【解决方案2】:

这有点棘手,但您需要将日期时间选择器移动到输入并手动处理对输入组插件的点击。例如:

$(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>

【讨论】:

  • 不需要手动处理输入组插件的点击组件有allowInputToggle选项来实现这个功能。
  • 如果你点击插件图标,你的答案现在不起作用。
  • 我已经修正了我的答案,我的第一条评论是正确的,allowInputToggle 选项就足够了。问题是我使用了您的 sn-p 的 HTML,其中 datetimepicker 类在错误的位置,该组件应该从父元素初始化以使 allowInputToggle 按预期工作(&lt;div class='input-group date'&gt; 在您的情况下) .无论如何,感谢您指出我的答案的第一个版本的问题,我更好地了解了 datetimepicker 的工作原理:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多