jQuery DatePicker - Enable Specific Day - Code Not Working

date, datepicker, javascript, jquery, jquery-ui

Solution

Try

jQuery(function(){

    var enableDays = ["7-8-2013"];

    function enableAllTheseDays(date) {
        var sdate = $.datepicker.formatDate( 'd-m-yy', date)
        if($.inArray(sdate, enableDays) != -1) {
            return [true];
        }
        return [false];
    }

    $('#datepicker').datepicker({dateFormat: 'dd-mm-yy', beforeShowDay: enableAllTheseDays});
})

Demo: Fiddle

Problem

I cannot for the life of me work out why this code isn't working. I'm sure that I'm doing something really stupid, but I just cant find it! I'm currently just trying to disable all the dates bar "7-8-2013". Any help on this would be greatly appreciated. Thanks! ``` <!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Calender Control Test</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css" /> <script> var enableDays = ["7-8-2013"]; $(function enableAllTheseDays(date) { var m = date.getMonth(), var d = date.getDate(), var y = date.getFullYear(); for (i = 0; i < enableDays.length; i++) { if($.inArray((d+1) + '-' + m + '-' + y,enableDays) != -1) { return [true]; } } return [false]; $('#datepicker').datepicker({dateFormat: 'dd-mm-yy', beforeShowDay: enableAllTheseDays}); </script> </head> <body> <div id="datepicker"></div> </body> </html> ```

Original source