防止jQueryUI日期选择器(内联类型)选择今天的日期

Prevent jQuery UI Datepicker (inline type) from selecting today's date

jQuery UI 日期选择器自动选择今天的日期并将其设置为关联输入元素的值。除了清除 beforeShow 上的输入字段外,还有什么办法可以防止这种情况发生,例如:

beforeShow: function(input, inst) {
    $('#calendar').val(''); 
}

...既脏又容易出错。

文档似乎没有列出任何方法。有 gotoCurrent,但它只会将 link 移动到当前选择的日期而不是今天。我想要的是不选择今天的日期并将关联的输入字段留空。

不过,我不是说要隐藏今天的日期 CSS class,它已经被隐藏了 here.

请注意,这只是内联日期选择器(绑定到 divspan 元素)的问题。工具提示日期选择器(绑定到 input 元素)不会发生这种情况。

您可以像下面这样操作:

$('.datepicker').datepicker({
  beforeShowDay: function(date) {
    var _date = jQuery.datepicker.formatDate('yy-mm-dd', date);
    return [new Date().toJSON().slice(0,10) != _date]
  }
});

Online Demo (fiddlejs)

如果您只想防止突出显示今天的日期,请使用与默认 class

相同的属性覆盖 highlight class

$("#datepicker").datepicker();
.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight {
  border: 1px solid #c5c5c5;
  background: #f6f6f6;
  font-weight: normal;
  color: #454545;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<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>

<style>
.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight {
  border: 1px solid #c5c5c5;
  background: #f6f6f6;
  font-weight: normal;
  color: #454545;
}
</style>

<p>Date:
  <input type="text" id="datepicker">
</p>