У меня есть два выбора даты для выбора даты начала и окончания. Как только я выбираю дату начала, я хочу затушить все предыдущие даты в календаре для поля даты окончания, я попробовал следующий код, но его серые предыдущие даты относительно текущей даты
скрипт
$("#startDate").onChange(function () {
var currentDate = new Date().getDate();
var startDate = new Date($(this).val());
var timeDiff = Math.abs(currentDate.getTime() - startDate.getTime());
$("#hDate")[0].value = Math.ceil(timeDiff / (1000 * 3600 * 24));
});
$(".datepicker").datepicker({
buttonImage: "../Images/calender.png",
buttonImageOnly: true,
showOn: "button",
minDate: -($("#hDate")[0].value)
});
HTML
<input type="text" placeholder="Start" class="datepicker" id="startDate">
<input type="text" placeholder="End" class="datepicker" id="endDate">
<input type="hidden" id="hDate" value="">
как я могу решить эту проблему?
Datepicker запускает событие onSelect
когда выбрана дата. Используйте это событие, чтобы установить параметр minDate
в minDate
параметре minDate
. Вот как это сделать:
$("#endDate").datepicker();
$("#startDate").datepicker({
onSelect: function (dateText, inst) {
var date = $.datepicker.parseDate($.datepicker._defaults.dateFormat, dateText);
$("#endDate").datepicker("option", "minDate", date);
}
});
$('#startDate').datepicker({dateFormat: 'yy-mm-dd'});
$('#endDate').datepicker({dateFormat: 'yy-mm-dd'});
$('#startDate').on("change", function() {
//Begin the re-creation
$('#end-datepicker').datepicker( "destroy" );
$('#endDate').datepicker({
/**
* Set the date to be the same as the start
**/
minDate : $('#startDate').datepicker( "getDate" ),
dateFormat: 'yy-mm-dd',
//Optional: setDate: The same as minDate.
});
});