изменение параметра minDate в JQuery DatePicker не работает - PullRequest
31 голосов
/ 11 мая 2009

Я объявил экземпляр средства выбора даты следующим образом:

    $("#datePickerId").datepicker(
    { dateFormat: 'DD, d MM yy',
      minDate: 0,
      showOn: 'button',
      buttonImage: '../../images/calendar.gif',
      buttonImageOnly: true,
      hideIfNoPrevNext: true
    }
   );

Теперь я хочу перейти к опции minDate, поэтому я делаю это:

$('#datePickerId').datepicker('option', 'minDate', 3);

Но ничего не происходит. Я должен был сделать что-нибудь еще? Какие еще возможные причины могут быть?

Ответы [ 7 ]

61 голосов
/ 21 июня 2012

Как динамически изменять minDate (после инициализации)

Приведенные выше ответы касаются того, как установить minDate по умолчанию в init, но на самом деле вопрос заключался в том, как динамически изменять minDate, ниже я также поясняю, как установить minDate по умолчанию.

Все, что было неправильно в исходном вопросе, заключалось в том, что значение minDate должно быть строкой (не забывайте кавычки):

$('#datePickerId').datepicker('option', 'minDate', '3');

minDate также принимает объект даты, и обычно используется конечная дата, которую вы пытаетесь вычислить, чтобы что-то подобное могло быть полезным:

$('#datePickerId').datepicker(
    'option', 'minDate', new Date($(".datePop.start").val())
);

Как установить minDate по умолчанию (при инициализации)

Просто отвечу на это для лучшей практики; опция minDate ожидает одно из:

  1. строка в текущем формате даты ИЛИ
  2. количество дней с сегодняшнего дня (например, +7) ИЛИ
  3. строка значений и периодов ('y' для лет, 'm' для месяцев, 'w' для недели, 'd' - дни, например '-1y -1m')

@ bogart установка строки в «0» является решением, поскольку она удовлетворяет варианту 2 выше

$('#datePickerId').datepicker('minDate': '3');

jQuery UI документы для minDate

25 голосов
/ 21 июня 2009

Драко,

Вы можете сделать это так:

$("#datePickerId").datepicker(
    { dateFormat: 'DD, d MM yy',
      minDate: new Date(2009, 10 - 1, 25), // it will set minDate from 25 October 2009
      showOn: 'button',
      buttonImage: '../../images/calendar.gif',
      buttonImageOnly: true,
      hideIfNoPrevNext: true
    }
   );

не забудьте написать -1 после месяца (например, для июня -> 6 -1)

23 голосов
/ 26 июня 2009

Использовать minDate в качестве строки:

$('#datePickerId').datepicker({minDate: '0'});

Это установило бы сегодня как минимальную выбираемую дату.

4 голосов
/ 23 октября 2013

Динамическое изменение minDate

.datepicker("destroy")

Например

<script>
    $(function() {
      $( "#datepicker" ).datepicker("destroy");
      $( "#datepicker" ).datepicker();
    });
  </script>

  <p>Date: <input type="text" id="datepicker" /></p>
2 голосов
/ 23 июня 2016

Нет необходимости уничтожать текущий экземпляр, просто обновите.

$('#datepicker')
    .datepicker('option', 'minDate', new Date)
    .datepicker('refresh');
2 голосов
/ 29 августа 2012

Скажем, у нас есть два поля выбора даты, field1 и field2. дата поля field2 зависит от поля field1

$('#field2').datepicker();
$('#field1').datepicker({
  onSelect: function(dateText, inst) {
    $('#field2').val("");
    $('#field2').datepicker("option", "minDate", new Date(dateText));
  }
});
1 голос
/ 20 сентября 2010

Месяц начинается с 0. 0 = январь, 1 = февраль, 2 = март, ..., 11 = декабрь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...