У меня есть таблица, и в каждой строке есть указатель даты. DatePickers только выбирают месяцы, и при закрытии я устанавливаю первый день месяца, за исключением случаев, когда этот день раньше minDate, поэтому я хочу установить minDate там.
Функция SetDate не работает. Мой журнал показывает, что ProperDate установлен правильно, но когда я передаю его в setDate, результат не меняется, и каким-то образом это стека в первый день месяца. Чего мне не хватает?
function initDatepickerSchedule(){
$(".datepickerSchedule").each(function(){
$(this).datepicker({
showOn: "both",
changeMonth: true,
changeYear: true,
dateFormat: "yy-mm-dd",
minDate: scheduleTaskMinDate(),
maxDate: scheduleTaskMaxDate($(this).closest("tr").find(".ScheduledTaskQtyInput").val(),$(this).closest("tr").find(".ScheduledTaskCompletedQtyInput").val()),
showButtonPanel: true,
onClose: function(dateText, inst) {
function isDonePressed(){
return $('#ui-datepicker-div').html().indexOf('ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all ui-state-hover') > -1;
}
if (isDonePressed()){
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
var properDate=new Date(year, month, 1);
var minDate=$(this).datepicker("option","minDate");
console.log(properDate);// 2019-12-1
console.log(minDate);//2019-12-2
console.log(properDate<minDate);// true
if(properDate<minDate){
properDate=minDate;
}
console.log("before set");
console.log(properDate===minDate);//true
console.log(properDate);//2019-12-2
$(this).datepicker("setDate",properDate);
console.log($(this).datepicker("getDate"));//2019-12-1
var coNo=$(this).closest("tr").find(".changeOrderNoInput").val();
$(this).closest("tr").find(".ScheduledTaskVersion").val(studyTaskScheduleVersion($(this).datepicker("getDate"),coNo));
$("#SubmitScheduleDistButton").prop('disabled', true).prop('title',"Validate without Errors to Unlock");
}
}
}).focus(function(){
$(".ui-datepicker-calendar").hide();
$(this).attr("autocomplete","off");
});
});
}