JQuery UI Datepicker: создание ссылки триггера datepicker - PullRequest
15 голосов
/ 04 февраля 2010

Я использую указатель даты в JQuery: http://jqueryui.com/demos/datepicker/

реализовано здесь:

http://www.clients.eirestudio.net/old/

Я хочу использовать ссылку в качестве триггера, но не могу заставить ее работать.

Вот мой код:

// JQuery UI
$("#datepicker").datepicker({
      changeMonth: true,
      changeYear: true,
      maxDate: '0m 0d',
      minDate: new Date(2000, 1 - 1, 1),
      dateFormat: 'dd-mm-yy'
});

<p class="clearfix hidden">
    <input id="" class="input float datepicker" type="input" name="" value="" />
    <a class="calendar ui-icon ui-icon-calendar">Date</a>

    <span class="mid-info">To</span>
    <input id="" class="input datepicker" type="input" name="" value="" />
    <a class="calendar" href="#">Date</a>
</p>

Есть идеи?

Ответы [ 7 ]

27 голосов
/ 07 марта 2011

Вы можете сделать что-то, как я сделал в этой скрипке

HTML:

<a href="#" id="toggleDP">Toggle</a>

JS:

var $dp = $("<input type='text' />").hide().datepicker({
    onSelect: function(dateText, inst) {
       $("body").append("<div>Selected "+dateText+"</div>");
    }
}).appendTo('body');

$("#toggleDP").button().click(function(e) {
    if ($dp.datepicker('widget').is(':hidden')) {
        $dp.show().datepicker('show').hide();
        $dp.datepicker("widget").position({
            my: "left top",
            at: "right top",
            of: this
        });
    } else {
        $dp.hide();
    }

    //e.preventDefault();
});
18 голосов
/ 30 ноября 2011

Я просто очень легко решил эту проблему в своем приложении - если у вас открыт указатель даты с текстовым полем, вы также можете использовать это решение.Я добавил $('#date_field').focus() ссылку на иконку.Нажмите на значок, текстовое поле получит фокус, и это откроет средство выбора даты.Вуаля.

6 голосов
/ 29 июля 2010

Попробуйте использовать:

    <a href="javascript:void(0);" onclick="$.datepicker._showDatepicker($('#inputID')[0]);">Text here</a>
    <input type="hidden" id="inputID"/>
    ...
    <script type="text/javascript">
      $(document).ready(
         function()
         {
             $('#inputID').datepicker();
         }
      );
    </script>
6 голосов
/ 04 февраля 2010

Это может помочь кому-то еще.

В итоге я заставил его работать с JQuery UI.

Код ниже:

$(".date-pick").datepicker({
      changeMonth: true,
      changeYear: true,
      maxDate: '0m 0d',
      minDate: new Date(2000, 1 - 1, 1),
      dateFormat: 'dd-mm-yy',
      showOn: 'button', 
      buttonImage: 'http://www.example.com/elements/images/calendar.png', 
      buttonImageOnly: true
      });

и я изменил идентификатор средства выбора даты на класс выбора даты

4 голосов
/ 22 июля 2013

Основываясь на ответе @camilokawerin, я сделал это и считаю его самым простым и чистым решением:

HTML:

<a href="#" id="selec">Click</a> <div id="datepicker" style="display:none"></div>

JS:

$("#datepicker").datepicker();
$('#selec').click(function(){
    $('#datepicker').toggle();
});
0 голосов
/ 15 мая 2013

С помощью встроенного указателя даты сделать это довольно просто.Проверьте мой JSFiddle .

HTML

<a href="#" class="datepicker">Pick a date</a>

JS

var dpToggler = $('a.datepicker').button(),
    dp = $("<div />").css('position', 'absolute').hide().datepicker().appendTo(dpToggler);

dpToggler.on('click', function(e) {
  e.preventDefault();
  if (dp.is(':hidden')) {
    dp.show().position({
      my: 'left top',
      at: 'right top',
      of: this
    });
  } else {
    dp.hide();
  }
});
0 голосов
/ 04 февраля 2010

Из jqueryui кажется, что вы должны добавить showOn и, возможно, (не знаю, требуется ли это) buttonImage:

$("#datepicker").datepicker({
    changeMonth: true,
    changeYear: true,
    maxDate: '0m 0d',
    minDate: new Date(2000, 1 - 1, 1),
    dateFormat: 'dd-mm-yy',
    showOn: 'button', 
    buttonImage: 'images/calendar.gif', // adapt this to your image
    buttonImageOnly: true
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...