Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery datepicker minDate variable

I'm usung the jQuery datepicker. In my "EndDate" textbox I'd like to use the date selected from the the "StartDate" textbox + 1. How do I do this?

I tried this but didn't work. In my start date code I had...

            test = $(this).datepicker('getDate');
            testm = new Date(test.getTime());
            testm.setDate(testm.getDate() + 1);

Then in my end date code I had...

minDate: testm,

but the end date still made all the days for the month available.


Edit. I'm curious as to why this doesn't work. In my start date datepicker I have this..

onSelect: function (dateText, inst) {
    test = dateText
}

Why can't I come down into my end date datepicker and say, minDate: test?


Edit. Still not working

    $(".dateStartDatePickerBox").datepicker({
        minDate:'-0d',
        onSelect: function(dateText, inst)
        {
            test = $(this).datepicker('getDate');
            testm = new Date(test.getTime());
            testm.setDate(testm.getDate() + 1);

            $("#dateEndDatePickerBox").datepicker("option", "minDate", testm);
        }
    });

    $(".dateEndDatePickerBox").datepicker({
        onSelect: function()
        {

        }
    });
like image 943
d3020 Avatar asked Mar 20 '10 20:03

d3020


1 Answers

You'll need to set the min date dynamically on the change event of the start date.

Something like:

$("#startDate").change(function() {
    test = $(this).datepicker('getDate');
    testm = new Date(test.getTime());
    testm.setDate(testm.getDate() + 1);

    $("#endDate").datepicker("option", "minDate", testm);
});

Answer to the edit:

You cannot do the following:

var test;
$("#myinput").datepicker({
    onSelect: function() { test = $(this).datepicker("getdate"); }
});
$("#myotherinput").datepicker({
    minDate: test
});

Test is uninitialized at the time that minDate is being set on myotherinput. The process of setting the minDate doubtless requires DOM manipulation which datepicker manages on initialization or when "option" is called. Simply changing the variable that was used for initialization does not effect the already initialized datepicker.

like image 67
Joel Avatar answered Oct 19 '22 23:10

Joel