Запрет выбора даты в jQuery UI Datepicker (встроенный тип) - PullRequest
0 голосов
/ 15 мая 2018

jQuery UI Datepicker автоматически выбирает сегодняшнюю дату и устанавливает ее в качестве значения связанного элемента ввода. Есть ли способ предотвратить это, кроме очистки поля ввода на beforeShow , например:

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

... что грязно и подвержено ошибкам.

Документация не содержит какого-либо метода. Существует gotoCurrent , но он только перемещает ссылку на текущую выбранную дату вместо сегодняшней. Я хочу оставить текущую дату невыбранной, а соответствующее поле ввода пустым.

Однако я не говорю о том, чтобы скрыть сегодняшний класс CSS для даты, который уже был описан здесь .

Обратите внимание, что это проблема только со встроенным средством выбора даты (связано с div или span элементами). Этого не происходит с подсказкой даты (связанной с элементом input).

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Если все, что вам нужно, это предотвратить выделение сегодняшней даты, переопределите класс highlight с теми же свойствами, которые использовались для класса по умолчанию

$("#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>
0 голосов
/ 15 мая 2018

Вы можете сделать это, как показано ниже:

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

Демонстрация онлайн (fiddlejs)

...