jquery Покажчик дати по клацанню значка

Я хочу показати jquery datepicker, натиснувши значок FontAwesome, який знаходиться всередині поля введення. Нижче наведено код:

<div class="col-md-4 col-sm-4 col-xs-12">
  <label for="datepicker">Date of birth*</label>
  <input type="text" name='datepicker' class="form-control"  value="Select date" id="datepicker" ng-required="true" placeholder="MM/DD/YYYY" >
  <span class="fa fa-calendar"></span>
</div>
jQuery('.fa-calendar').on('click' , function() {
  jQuery(this).datepicker().trigger('focus');
});
Рішення

Спробуй це

$(document).ready(function() {
  $("#datepicker").datepicker();
  $('.fa-calendar').click(function() {
    $("#datepicker").focus();
  });
});
  • Ініціалізуйте datepicker тільки один раз

Ось приклад

$(document).ready(function() {
  $("#datepicker").datepicker();
  $('.fa-calendar').click(function() {
    $("#datepicker").focus();
  });
});


  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div class="col-md-4 col-sm-4 col-xs-12">
  Date of birth*
  <input type="text" name='datepicker' class="form-control"  value="Select date" id="datepicker" ng-required="true" placeholder="MM/DD/YYYY" >
  <span class="fa fa-calendar"></span>
</div>
Коментарі (2)

Ви хочете активувати Покажчик дати в полі введення, а не значок, тому вам потрібно змінити

jQuery(this).datepicker().trigger('focus');`

бувши

jQuery("#datepicker").datepicker().trigger('focus');
Коментарі (0)

Ви можете використовувати параметр 'Відкрити" в датапікері, щоб програмно відкрити його. Немає необхідності запускати подію "фокус". Вам також необхідно викликати метод 'datepicker () для елемента #datepicker', а не для значка, на який натиснута кнопка. Спробуй це:

jQuery(function($) {
  $('#datepicker').datepicker();

  $('.fa-calendar').on('click', function() {
    $('#datepicker').datepicker('open');
  });
});
Коментарі (0)

HTML

<div class="col-md-4 col-sm-4 col-xs-12">
Date of birth*
<input type="text" name='datepicker' class="form-control"  value="Select 
 date" id="datepicker_val" ng-required="true" placeholder="MM/DD/YYYY" >
        <span class="fa fa-calendar"></span>
</div>

JS

jQuery(".fa-calendar").datepicker();

Це те, що ти хочеш зробити. Це буде працювати, ви можете ввести дату в свій тип введення, як показано нижче.

jQuery(".fa-calendar").datepicker().on('changeDate', function(ev){

            jQuery("#datepicker_val").val(ev.date.valueOf());

        }
    });
Коментарі (0)