8

我正在尝试禁用允许用户更改月份的左/右按钮。我已经删除了月份的下拉列表,但无法摆脱按钮。

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

4 回答 4

14

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

于 2010-08-17T11:24:14.633 回答
2

提到的解决方案对我不起作用,我开发了这个:

$('#datepicker').find('.ui-datepicker-next').remove();
$('#datepicker').find('.ui-datepicker-prev').remove();
于 2013-01-16T13:37:11.980 回答
1

我不知道如何直接在 jQuery 中执行此操作(或者如果可能的话)。

但是如果你找不到办法在那里做,你总是可以把按钮隐藏在 css 中。

您想要的 css 选择器是(来自内存,因此您可能需要检查)

.ui-datepicker .ui-datepicker-prev, 
.ui-datepicker .ui-datepicker-next
{
    display:none;
}
于 2010-08-17T11:25:15.333 回答
1

这是我让 datepicker 只选择年份的方法:

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);
                  }
             });
于 2013-12-04T14:06:36.797 回答