如何从不同的日期选择器设置datepicker的minDate,setDate,defaultDate?

时间:2014-06-02 17:52:49

标签: jquery datepicker

我有2个日期选择器"范围"第一个选择器是" pre_from"日期和第二个是" pre_to"日期。但是,我想在这里做的是发送" pre_to" picker minDate to =" pre_from" selecteDate。另外我想设置" pre_to"选择器有" pre_from"的最后一天选定月份。

我已经为" onClose"添加了一个代码。 " pre_from"的功能应该设置" pre_to的日期选择器。"但它没有像我预期的那样工作。由于某种原因,它不会设置默认选择日期和当前选定的值。

下面是我尝试过的内容。

$(function(){

function LastDayOfMonth(Year, Month) {
    return new Date( (new Date(Year, Month+1,1))-1 );
}


    $('#pre_from').datepicker({
        dateFormat: "yy-mm-dd",
        changeMonth: true,
        changeYear: true,
        onClose: function( selectedDate ) {
            var d = $.datepicker.parseDate("yy-mm-dd",  selectedDate);
            var last_day = LastDayOfMonth(d.getFullYear(), d.getMonth());

                //setDate: new Date(last_day.getFullYear(), last_day.getMonth(), last_day.getDay() ),
                //defaultDate: new Date(last_day.getFullYear(), last_day.getMonth(), last_day.getDay() )

            $( "#pre_to" ).datepicker({ 
                minDate: selectedDate,
                setDate: last_day,
                defaultDate: last_day
            }); 
        }   
    });

    $('#pre_to').datepicker({
        dateFormat: "yy-mm-dd",
        changeMonth: true,
        changeYear: true,
        onClose: function( selectedDate ) {
            $( "#pre_from" ).datepicker( "option", "maxDate", selectedDate );
        }       
    }); 

});

我在这里做错了什么?

感谢

1 个答案:

答案 0 :(得分:0)

我终于弄明白了

我必须将$( "#pre_to" ).datepicker({更改为$( "#pre_to" ).datepicker("option", {

$(function(){

function LastDayOfMonth(Year, Month) {
    return new Date( (new Date(Year, Month+1,1))-1 );
}


    $('#pre_from').datepicker({
        dateFormat: "yy-mm-dd",
        changeMonth: true,
        changeYear: true,
        onClose: function( selectedDate ) {
            var d = $.datepicker.parseDate("yy-mm-dd",  selectedDate);
            var last_day = LastDayOfMonth(d.getFullYear(), d.getMonth());

            $( "#pre_to" ).datepicker("option", { 
                minDate: selectedDate,
                setDate: last_day,
                defaultDate: last_day
            }); 
        }   
    });

    $('#pre_to').datepicker({
        dateFormat: "yy-mm-dd",
        changeMonth: true,
        changeYear: true,
        onClose: function( selectedDate ) {
            $( "#pre_from" ).datepicker( "option", "maxDate", selectedDate );
        }       
    }); 

});