The date format you specify for datepicker ( yy-mm-dd ) is different from the default date format ( mm/dd/yy ). In your code, the user interface tries to 2013-01-01 as mm/dd/yy , which does not parse (the function is discarded when it sees 1 instead of / ).
Possible fixes:
a. Explicitly using the same date format that you specified in the datepicker options:
$("#datepicker").datepicker({ dateFormat: "yy-mm-dd", beforeShowDay: function (date) { var date1 = $.datepicker.parseDate("yy-mm-dd", $("#input1").val()); var date2 = $.datepicker.parseDate("yy-mm-dd", $("#input2").val());
B. Capture date Format on demand:
$("#datepicker").datepicker({ beforeShowDay: function (date) { var date1 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input1").val()); var date2 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input2").val());
In the above example, $(this).datepicker("option", "dateFormat") will return the date format used by the current datepicker parameter (explicitly specified or inherited from the default datepicker values).
source share