Javascript jquery ui Datepicker重新初始化minDate失败

Javascript jquery ui Datepicker重新初始化minDate失败,javascript,jquery,html,jquery-ui,datepicker,Javascript,Jquery,Html,Jquery Ui,Datepicker,我有一个初始化日期选择器的函数 function initDatepickerTaskEndDate(){ //console.log(new Date(studyPhaseTimeframe.endDate)); $(".closeTaskDatePicker").datepicker({ showOn: "both", showOtherMonths: true,

我有一个初始化日期选择器的函数

function initDatepickerTaskEndDate(){
            //console.log(new Date(studyPhaseTimeframe.endDate));
        $(".closeTaskDatePicker").datepicker({
            showOn: "both",
            showOtherMonths: true,
            selectOtherMonths: true,
            changeMonth: true,
            changeYear: true,
            dateFormat: "yy-mm-dd",
            showWeek: true,
            firstDay: 1,
            showButtonPanel: true,
            minDate: setMinDateForTaskCloseDatePicker(),
            maxDate: studyPhaseTimeframe.endDate,
            onClose: function (){// setting end date and link to call the save function
                        var closeDate = $(".closeTaskDatePicker").datepicker("getDate");
                        if(closeDate!=null){
                            $(".acceptCloseDate").prop("disabled",false);
                        }
                    },
        }).focus(function(){
            $(".ui-datepicker-calendar").css({"position":"relative"});  
            $(this).attr("autocomplete","off");
            $(".acceptCloseDate").prop("disabled",true);
        });
    }
还有一个设置minDate的函数,在这里我还使用另一个日期选择器的getDate

    function setMinDateForTaskCloseDatePicker(){
        var minDate=null;
        console.log("start init close")
        //set min Date to Task Close date to the biggest milestone completed date or to the biggest task schedule completion date.
        //console.log($(".datepickerTaskStart").datepicker("getDate"));
        console.log("set min on EndDate");
        minDate=$(".datepickerTaskStart").datepicker("getDate");    
        console.log(minDate);           
        if(taskSchedulesListLength>0){
            $.each(taskSchedulesList,function(index,item){
                if(item.plannedDate!=null){
                    var newDate=new Date(item.plannedDate);
                    if(minDate==null && item.completedQty>0){
                        minDate=newDate;
                    }else if(minDate<newDate && item.completedQty>0){
                        console.log("came in");
                        minDate=newDate;
                    }
                }
            });
        }else{
            $.each(milestoneRoleBudgetList,function(index,item){
                if(item.completionDate!=null){
                    var newDate=new Date(item.completionDate);
                    if(minDate==null){
                        minDate=newDate;
                    }else if(minDate<newDate){
                        minDate=newDate;
                    }
                }
            });
        }
                
        console.log("Min Return:");
        console.log(minDate);
        return minDate;
    }
控制台日志的结果是:

  • 开始时,我们有(第二个日期选择器的日期为2019-06-03):
41:1500开始初始关闭

41:1503在结束日期设置最小值

2019年6月3日星期一41:1505 00:00:00 GMT+0200(中欧夏季时间)

41:1535分钟返回:

2019年6月3日星期一41:1536 00:00:00 GMT+0200(中欧夏季时间)

  • 更改第二个日期选择器后,初始化开始,我得到了所有其他结果
41:1500开始初始关闭

41:1503在结束日期设置最小值

2018年12月7日星期五41:1505 00:00:00 GMT+0100(中欧标准时间)

41:1535分钟返回:

2018年12月7日星期五41:1536 00:00:00 GMT+0100(中欧标准时间)

41时2778分结束

41:2779 2019年6月3日星期一00:00:00 GMT+0200(中欧夏季时间)

41时2780分完

41:2781 2018-12-27

我预计minDate将在2018-12-27,但它仍然保持最初的状态。
我错过了什么原因控制台。登录初始化计算日期的函数似乎返回了正确的日期。

只调用函数来设置最小和最大日期,而不进行总初始化可以解决此问题

    $(document).on('change','.datepickerTaskStart',function(){
        initDatepickerTaskEndDate();
        console.log("mminn end");
        console.log($(".closeTaskDatePicker").datepicker( "option", "minDate" ));
        console.log("mmaxx end");
        console.log($(".closeTaskDatePicker").datepicker( "option", "maxDate" ));
    });