JQuery ui - выбор даты, отключение определенных дат
Я пытаюсь отключить определенные даты с помощью JQuery Ui. Однако мне не повезло, вот мой код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="development-bundle/themes/ui-lightness/jquery.ui.all.css">
<style type="text/css">
.ui-datepicker .preBooked_class { background:#111111; }
.ui-datepicker .preBooked_class span { color:#999999; }
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>jQuery UI Datepicker</title>
<script type="text/javascript" src="development-bundle/jquery-1.7.1.js"></script>
<script type="text/javascript" src="development-bundle/ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="development-bundle/ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="development-bundle/ui/jquery.ui.datepicker.js"></script>
Активировать объект datepicker
<script type="text/javascript">
$(function() {
$( "#iDate" ).datepicker({
dateFormat: 'dd MM yy',
beforeShowDay: checkAvailability
});
})
Получить даты, которые будут отключены в календаре
var unavailableDates = ["9-3-2012","14-3-2012","15-3-2012"];
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false,"","Unavailable"];
}
}
$('#iDate').datepicker({ beforeShowDay: unavailable });
</script>
</head>
<body>
<input id="iDate">
</body>
</html>
Кажется, он не работает, и я понимаю, как я могу это решить. веселит.
Ответы
Ответ 1
Похоже, вы дважды вызываете datepicker
на один вход. Его трудно следовать вашему коду, но если вы его реорганизовываете и удаляете второй вызов datepicker
, все должно работать:
<script type="text/javascript">
var unavailableDates = ["9-3-2012", "14-3-2012", "15-3-2012"];
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
$(function() {
$("#iDate").datepicker({
dateFormat: 'dd MM yy',
beforeShowDay: unavailable
});
});
</script>
Пример: http://jsfiddle.net/daCrosby/JjPrU/334/
Ответ 2
Полезный ответ. Если вы хотите отключить суточный день, вы можете сделать следующее:
$scope.dateOptions = {
beforeShowDay: unavailable
};
function unavailable(date) {
if (date.getDay() === 0) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
выше будет включено только воскресенье, а все остальные дни будут отключены. Надеюсь, это поможет.