单击日历图标后如何使日历弹出?

时间:2018-07-10 02:57:15

标签: javascript jquery html css datepicker

我正在website上工作,我想在其中单击日历图标时弹出日历。

我用来放置开始日期结束日期的HTML代码是:

<div class="dates">
   <div class="start_date">
      <input class="form-control start_date mb-4" type="text" placeholder="start date">
      <span class="fa fa-calendar start_date_calendar" aria-hidden="true "></span>
   </div>
   <div class="end_date">
      <input class="form-control  end_date mb-4" type="text" placeholder="end date">
      <span class="fa fa-calendar end_date_calendar" aria-hidden="true "></span>
   </div>
</div>


问题陈述:

我想知道必须使用什么js / jquery代码,才能在点击左右日历图标时使日历弹出(在下面的屏幕快照中由箭头标记)。

我尝试放置以下代码,但是以某种方式我无法在点击日历图标时弹出日历。

<script>
  $( function() {
    $( "#datepicker" ).datepicker();
  } );
</script>

enter image description here

4 个答案:

答案 0 :(得分:2)

在使用Bootstrap时,我建议使用Bootstrap Datepicker

在您的站点中,为日期输入字段输入id并按如下所示进行初始化。

$(document).ready(function(){
    $("#startdate").datepicker();
    $("#enddate").datepicker();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/css/datepicker.css"/>

<input id="startdate">
<input id="enddate">

答案 1 :(得分:1)

您可以尝试Bootstrap Datepicker

https://jsfiddle.net/codeandcloud/acq7t97c/

JQuery Datepicker

http://jsfiddle.net/klenwell/LcqM7/

答案 2 :(得分:0)

您似乎正在使用jQuery的datepicker?

您正在尝试执行此行

$( "#datepicker" ).datepicker();

但是您没有任何带有ID日期选择器的元素。

如果您希望在单击时将整个输入更改为datepicker,请尝试在输入中添加id datepicker。在类start_date的输入中添加了id datepicker。

<div class="dates">
  <div class="start_date">
    <input class="form-control start_date mb-4" type="text" placeholder="start date" id="datepicker">
    <span class="fa fa-calendar start_date_calendar" aria-hidden="true "> 
    </span>
  </div>
  <div class="end_date">
    <input class="form-control  end_date mb-4" type="text" placeholder="end date">
    <span class="fa fa-calendar end_date_calendar" aria-hidden="true "></span>
  </div>
</div>

答案 3 :(得分:0)

只需为日历图标添加一个ID,然后使用javascript单击相应图标的操作

        $(document).ready(function() {
          $('#calendar1').click(function(event) {
            $('.start_date').datepicker('show');
          });


          $('#calendar2').click(function(event) {
            $('.end_date').datepicker('show');
          });
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.js"></script>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/css/datepicker.css" />
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">

    <div class="container">
    <div class="row">
    <div class="col-md-3">
        <div class="input-group">
          <div class="input-group-addon" id="calendar1">
            <i class="fa fa-calendar"></i>
          </div>
          <input type="text" name="start_date" id="start_date" class="form-control start_date" data-inputmask="'alias':'mm/dd/yyyy'" data-mask="" value="">
        </div>
    </div>
    <div class="col-md-3">
        <div class="input-group">
          <div class="input-group-addon" id="calendar2">
            <i class="fa fa-calendar"></i>
          </div>
          <input type="text" name="end_date" id="end_date" class="form-control end_date" data-inputmask="'alias': 'mm/dd/yyyy'" data-mask="" value="">
        </div>
        </div>
        </div>
        </div>