jQuery datepicker set selected date, on the fly

Jquery UiDatepicker

Jquery Ui Problem Overview


How can I change the selected date of jquery Date picker dynamically on the fly? I have say created a inline date picker. Then after some time, I want to reflect a different date there without recreating the datepicker from the scratch.

I tried the setDate method, but did not work, and there is not much documentation in the doc.

There is another (extended?) plugin here, but I want to use the plugin which is shipped with jquery.ui.all.js.

Jquery Ui Solutions


Solution 1 - Jquery Ui

What version of jQuery-UI are you using? I've tested the following with 1.6r6, 1.7 and 1.7.1 and it works:

//Set DatePicker to October 3, 2008
$('#dateselector').datepicker("setDate", new Date(2008,9,03) );

Solution 2 - Jquery Ui

Check that the date you are trying to set it to lies within the allowed date range if the minDate or maxDate options are set.

Solution 3 - Jquery Ui

This example shows of how to use default value in the dropdown calendar and value in the text box. It also shows how to set default value to previous date.

selectedDate is another variable that holds current selected date of the calendar control

    var date = new Date();
    date.setDate(date.getDate() - 1);

    $("#datepicker").datepicker({
        dateFormat: "yy-mm-dd",
        defaultDate: date,
        onSelect: function () {
            selectedDate = $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));
        }
    });

    $("#datepicker").datepicker("setDate", date);

Solution 4 - Jquery Ui

Noted that for DatePicker by Keith Wood (http://keith-wood.name/datepickRef.html) the following works - note that the setting of the default date is last:

    $('#datepicker').datepick({
        minDate: 0,
        maxDate: '+145D',
        multiSelect: 7,
        renderer: $.datepick.themeRollerRenderer,
        ***defaultDate: new Date('1 January 2008')***
    });

Solution 5 - Jquery Ui

$('.date-pick').datePicker().val(new Date()).trigger('change')

finally, that what i look for the last few hours! I need initiate changes, not just setup date in text field!

Solution 6 - Jquery Ui

For some reason, in some cases I couldn't make the setDate work.

A workaround I found is to simply update the value attribute of the given input. Of course the datepicker itself won't be updated but if what you just look for is to display the date, it works fine.

var date = new Date(2008,9,3);
$("#your-input").val(date.getMonth()+"/"+date.getDate()+"/"+date.getFullYear());
// Will display 9/3/2008 in your #your-input input

Solution 7 - Jquery Ui

This is a old thread but I just want to give some information how I have used. If you want to set today date you can simply apply it like below.

 $("#datepickerid").datepicker("setDate", "0");

If you want to set some days before/after the current date then use the symbol -/+ symbol of how many days you want like below.

 $("#datepickerid").datepicker("setDate", "-7");
 $("#datepickerid").datepicker("setDate", "+5");

Solution 8 - Jquery Ui

This works for me:

$("#dateselector").datepicker("option", "defaultDate", new Date(2008,9,3));

Solution 9 - Jquery Ui

setDate only seems to be an issue with an inline datepicker used in jquery UI, the specific error is InternalError: too much recursion.

Solution 10 - Jquery Ui

In Html you can add your input field with a date picker like this

<input class="form-control date-picker fromDates" id="myDate" type="text">

and then in java script, initialize your datepicker and set your value to the date like this,

$('.fromDates').datepicker({
                maxDate: '0',
                dateFormat: "dd/mm/yy",
                changeYear: true,
                changeMonth: true,
                yearRange: "-100:+0"
            });

var myDateVal = moment('${value}').format('DD/MM/YYYY');
$('#myDate').datepicker().datepicker('setDate', myDateVal );

(In here fromdate attribute shows the previous dates of the current date)

Solution 11 - Jquery Ui

please Find below one it helps me a lot to set data function

$('#datepicker').datepicker({dateFormat: 'yy-mm-dd'}).datepicker('setDate', '2010-07-25');

Solution 12 - Jquery Ui

var dt = new Date();
var renewal = moment(dt).add(1,'year').format('YYYY-MM-DD');
// moment().add(number, period)
// moment().subtract(number, period)
// period : year, days, hours, months, week...

Solution 13 - Jquery Ui

I had a lot of trouble with the setDate method as well. seems to only work in v1. What does seem to work however is using the dpSetSelected method:

	$("#dateselector").dpSetSelected(new Date(2010, 0, 26).asString());

good luck!

Solution 14 - Jquery Ui

or you can simply have

$('.date-pick').datePicker().val(new Date()).trigger('change')

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSabyaView Question on Stackoverflow
Solution 1 - Jquery UiBen KoehlerView Answer on Stackoverflow
Solution 2 - Jquery UicfwallView Answer on Stackoverflow
Solution 3 - Jquery UiVlad BezdenView Answer on Stackoverflow
Solution 4 - Jquery UiMichaelView Answer on Stackoverflow
Solution 5 - Jquery UiOleksii SemeniukView Answer on Stackoverflow
Solution 6 - Jquery UiGuillaume FlandreView Answer on Stackoverflow
Solution 7 - Jquery UiSuresh PonnukalaiView Answer on Stackoverflow
Solution 8 - Jquery UiGjermund DahlView Answer on Stackoverflow
Solution 9 - Jquery UiAllenView Answer on Stackoverflow
Solution 10 - Jquery Uichamzz.dotView Answer on Stackoverflow
Solution 11 - Jquery UiShyamView Answer on Stackoverflow
Solution 12 - Jquery Uistudy4uView Answer on Stackoverflow
Solution 13 - Jquery UitijsView Answer on Stackoverflow
Solution 14 - Jquery UiGayanView Answer on Stackoverflow