JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<title>Ejemplo jQuery UI</title>
</head>
<body>
<input type="text" id="datepicker" />
</body>
</html>
JavaScript
//acá obtengo las fechas por DB
var o_fechas_disponibles = [{"id":"1","fecha":"2012-06-14","descripcion":"ddddddddddddddd"},
{"id":"2","fecha":"2012-06-14","descripcion":"rrrrrrrrrrrrr"},
{"id":"3","fecha":"2012-06-15","descripcion":"mmmm msdf mmmmmm"}];
//convierto este objeto en array de fechas, sólo por conveniencia
//esto debe hacerse fuera de la función callback y de preferencia al comienzo de todo
//de esta forma hacemos este ciclo sólo una vez.
var ar_fechas_disponibles = new Array();
$.map(o_fechas_disponibles,function(n,i){
ar_fechas_disponibles[i] = n.fecha;
});
$(function(){
$("#datepicker").datepicker({
beforeShowDay: function(date) {
//obtengo la fecha que me provee datepicker y la pongo en EL MISMO formato
//que las fechas que yo tengo, para poder comparar.
_fecha = date.getFullYear() + '-' + ("0" + (date.getMonth()+1)).slice(-2) + '-' +("0" + date.getDate()).slice(-2);
//verifico que la fecha obtuve esté en el arreglo.
//Si no está, devuelvo false y un texto para mostrar como tooltip en la fecha
if ($.inArray(_fecha, ar_fechas_disponibles)==-1) {
return [false,"","No disponible"];
} else {
return [true, ""];
}
}
})
});