Изменение параметра minDate в JQuery DatePicker не работает
Я объявил экземпляр выбора даты следующим образом:
$("#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);
Но ничего не происходит. Предполагаю ли я сделать что-нибудь еще? Какие еще возможные причины могут быть?
Ответы
Ответ 1
Драко,
Вы можете сделать это следующим образом:
$("#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 после месяца (например, для june is → 6 -1)
Ответ 2
Как динамически изменять minDate (после init)
В приведенных выше ответах указывается, как установить значение minDate по умолчанию в init, но на самом деле вопрос заключается в том, как динамически изменять minDate, ниже также уточняется. Как установить минимальный minDate по умолчанию.
Все, что было неправильно с исходным вопросом, состояло в том, что заданное значение minDate должно быть строкой (не забудьте кавычки):
$('#datePickerId').datepicker('option', 'minDate', '3');
minDate также принимает объект даты, и обычно используется дата окончания, которую вы пытаетесь вычислить, поэтому может быть полезно что-то вроде этого:
$('#datePickerId').datepicker(
'option', 'minDate', new Date($(".datePop.start").val())
);
Как установить значение по умолчанию minDate (при инициализации)
Просто отвечая на это для лучшей практики; опция minDate ожидает одно из следующих значений:
- строка в текущей датеFormat OR
- количество дней с сегодняшнего дня (например, +7) ИЛИ
- строка значений и периодов ('y' в течение многих лет, m в месяцах, w
недель, 'd' в течение нескольких дней, например. '-1y -1m')
@bogart установка строки в "0" является решением, поскольку оно удовлетворяет варианту 2 выше
$('#datePickerId').datepicker('minDate': '3');
jQuery UI docs для minDate
Ответ 3
Используйте minDate как строку:
$('#datePickerId').datepicker({minDate: '0'});
Сегодня это будет минимальная дата выбора.
Ответ 4
Скажем, у нас есть два поля выбора даты, field1 и field2. Поле field2 зависит от поля1
$('#field2').datepicker();
$('#field1').datepicker({
onSelect: function(dateText, inst) {
$('#field2').val("");
$('#field2').datepicker("option", "minDate", new Date(dateText));
}
});
Ответ 5
Динамическое изменение minDate
.datepicker("destroy")
Например
<script>
$(function() {
$( "#datepicker" ).datepicker("destroy");
$( "#datepicker" ).datepicker();
});
</script>
<p>Date: <input type="text" id="datepicker" /></p>
Ответ 6
Начало месяца с 0.
0 = январь,
1 = февраль,
2 = март,
...,
11 = декабрь.
Ответ 7
Нет необходимости уничтожать текущий экземпляр, просто обновить.
$('#datepicker')
.datepicker('option', 'minDate', new Date)
.datepicker('refresh');