jQuery datepicker, отключить выбор месяца - PullRequest
7 голосов
/ 17 августа 2010

Привет, я уверен, что должен быть простой способ сделать это, но не могу найти опцию, чтобы установить его где-либо.

Я пытаюсь отключить левую / правую кнопки, которые позволяют пользователю менять месяцы. Я удалил выпадающий список месяцев, но не могу избавиться от кнопок.

    $("#date").datepicker({
    changeMonth: false,
    changeYear: false,
    dateFormat: 'dd/mm/yy',
    duration: 'fast'
});

Ответы [ 4 ]

13 голосов
/ 17 августа 2010

Вы можете эффективно отключить их, используя stepMonths, заставляя их никуда не кликать, например:

$("#date").datepicker({
  changeMonth: false,
  changeYear: false,
  dateFormat: 'dd/mm/yy',
  duration: 'fast',
  stepMonths: 0
});

Вы можете попробовать здесь

Или вы можете удалить кнопки следующим образом:

$("#date").datepicker({
  changeMonth: false,
  changeYear: false,
  dateFormat: 'dd/mm/yy',
  duration: 'fast'
}).focus(function() {
  $(".ui-datepicker-prev, .ui-datepicker-next").remove();
});​

Вы можете попробовать здесь , это работает, потому что по умолчанию showOn опция focus, если вывы используете другое событие, просто привязайтесь к этому после вызова .datepicker() (поэтому сначала запускается его событие, вы не можете скрыть то, что еще не создано).

3 голосов
/ 16 января 2013

Упомянутое решение не работает для меня, я разработал это:

$('#datepicker').find('.ui-datepicker-next').remove();
$('#datepicker').find('.ui-datepicker-prev').remove();
2 голосов
/ 04 декабря 2013

Это мой способ выбора даты только по году:

if (document.styleSheets[0].addRule) {
   document.styleSheets[0].addRule(".ui-datepicker-calendar", "display: none;");
else {
   document.styleSheets[0].insertRule(".ui-datepicker-calendar {display: none;}", 0);
}

 .datepicker({    
                  dateFormat: 'yy',
                  showMonthAfterYear: false,
                  changeMonth: false,
                  changeYear: true,
                  showButtonPanel: true,
                  stepMonths: 12,
                  monthNames: ["", "", "", "", "", "", "", "", "", "", "", "", "", ""],
                  onChangeMonthYear: function (year) {
                      $(this).val(year);
                  }
             });
0 голосов
/ 17 августа 2010

Я не знаю, как сделать это напрямую в jQuery (или, если это возможно).

Но если вы не можете найти там способ сделать это, вы всегда можете просто скрыть кнопки в css.

Селекторы CSS, которые вам нужны (из памяти, поэтому вам может потребоваться проверить)

.ui-datepicker .ui-datepicker-prev, 
.ui-datepicker .ui-datepicker-next
{
    display:none;
}
...