如何为datepicker动态设置minDate和maxDate jquery [duplicate]

ki1q1bka  于 9个月前  发布在  jQuery
关注(0)|答案(2)|浏览(159)

此问题在此处已有答案

jquery datetime picker set minDate dynamic(9个回答)
上个月关门了。
我在Jquery中有两个datepicker,第二个datepicker值(min和max)应该取决于第一个datepicker的实际值。
下面是我的代码:
第一个月
<input aria-label="date" type="text" id="EndDate" name="EndDate" placeholder="dd/mm/yyyy" size="10" maxlength="10" style="margin-left:0px;" />
现在,我的Jquery:

$("#EndDate").datepicker({
            dateFormat: 'dd/mm/yy',
            changeMonth: true
        }
        );
            $("#EffectiveDate").datepicker({
                dateFormat: 'dd/mm/yy', 
                //autoclose: true,
                //minDate: 1,
                minDate: vm.MinimumEffectiveDate(),
                onClose: function (selectDate) {
                    // Set the minDate of 'to' as the selectedDate of 'from'
                    //$("#EndDate").datepicker("option", "minDate", (new Date(selectDate)).addDays(1));
                    //$("#EndDate").datepicker("option", "maxDate", (new Date(selectDate)).addMonths(24));
                },
                onSelect: function (date) {

                    //var selectedDate = new Date(date);
                    //alert(date);
                    var min = date.addDays(1);
                    var max = min.addMonths(24);
                    //var endDate = selectedDate.addDays(2);
                    //Set Minimum Date of EndDatePicker After Selected Date of StartDatePicker
                    //$("#EndDate").datepicker("option", "minDate", new Date(date));
                    //$("#EndDate").datepicker("option", "maxDate", max);
                    var selectedDate = new Date(date);
                    var msecsInADay = 86400000;
                    var endDate = new Date(selectedDate.getTime() + msecsInADay);

                    //Set Minimum Date of EndDatePicker After Selected Date of StartDatePicker
                    $("#EndDate").datepicker("option", "minDate", endDate);
                    $("#EndDate").datepicker("option", "maxDate", '+2y');

                },
                onchange: function (date) {

                    var selectedDate = new Date(date);
                    //alert(date);
                    //alert(date);
                    var min = date.addDays(1);
                    var max = min.addMonths(24);
                    //var endDate = selectedDate.addDays(2);
                    //Set Minimum Date of EndDatePicker After Selected Date of StartDatePicker
                    //$("#EndDate").datepicker("option", "minDate", min);
                    //$("#EndDate").datepicker("option", "maxDate", max);

                }
            });

字符串
问题是,当在第二个日期选择器中选择日期时,它不受限制,最小日期可以在第一个日期选择器中的日期之前

bcs8qyzn

bcs8qyzn1#

你可以试试这个代码:

$(function() {
    $("#EffectiveDate").datepicker({
        dateFormat: 'dd/mm/yy',
        onSelect: function(date) {
            var selectedDate = $(this).datepicker('getDate');
            if (selectedDate) {
                selectedDate.setDate(selectedDate.getDate() + 1); // Adding one day

                // Set minimum date for EndDate picker
                $("#EndDate").datepicker("option", "minDate", selectedDate);
            }
        }
    });

    $("#EndDate").datepicker({
        dateFormat: 'dd/mm/yy',
        changeMonth: true
    });
});

个字符
此修改可确保EndDate选择器的最小日期设置为连续日期选择器中选定日期后的一天。

w8rqjzmb

w8rqjzmb2#

您应该在EndDate日期选择器的选项中使用onClose,而不是使用onchange

相关问题