显示小于结束日期的开始日期 - Datepicker

时间:2017-09-25 07:09:44

标签: javascript jquery date datetime datepicker

所以,我试图在结束日期日期选择器'中仅显示大于开始日期的日期。在这里,我的问题是 - 如果用户最初选择一些开始日期(比如说9月27日),结束日期日期选择器显示的日期大于9月27日,很好。但是如果由于某种原因(例如9月27日到9月25日)更改了开始日期,结束日期日期选择器仍然只显示大于上一个开始日期的日期(即,第25和26日没有突出显示)。随附 Screenshot1Screenshot2

这是必需的js:

$(document).ready(function() {
    var start = new Date();
    // var end = new Date();

    $("#s_dt").datepicker({
        startDate: start,
        daysOfWeekDisabled: [0, 6],
        autoclose: true,
    })
    $("#s_dt").on('changeDate', function() {
        var st = $(this).datepicker("getDate");
        var end = st;
        // end.setDate(st.getDate());
        console.log(st);
        end.toLocaleDateString();
        console.log(end);
        $('#e_dt').val('');            

        $("#e_dt").datepicker({
            startDate: end,
            daysOfWeekDisabled: [0, 6],
            autoclose: true,
        })

    })

})

提前致谢...

1 个答案:

答案 0 :(得分:3)

datepicker有方法setStartDate,您可以在更改开始日期时设置结束日期输入的开始日期,而不是再次初始化。

$("#s_dt").datepicker({
    startDate: start,
    daysOfWeekDisabled: [0, 6],
    autoclose: true,
});

//initialize it once without start date
$("#e_dt").datepicker({
    daysOfWeekDisabled: [0, 6],
    autoclose: true,
});

$("#s_dt").on('changeDate', function() {
    var st = $(this).datepicker("getDate");
    var end = st;
    console.log(st);
    end.toLocaleDateString();
    console.log(end);

    //use setStartDate to change startdate property dynamically
    $('#e_dt').val('').datepicker('setStartDate', end);             
});