jQuery Datepicker показывает только понедельники и отключает определенные понедельники - PullRequest
1 голос
/ 14 февраля 2012

У меня возникают проблемы при попытке объединить показ только понедельников, а также отключение определенных дат в параметре beforeShowDay в датчике jQuery ... Я хочу, чтобы пользователь мог выбирать только понедельники, кроме 20.02.2012и 27.02.2012, но я не уверен, как это реализовать ...

    <script type="text/javascript">
        var unavailableDates = ["20-02-2012", "27-12-2012"];
        function unavailable(date) {
        dmy = (date.getDay() == 1);
        if ($.inArray(dmy, unavailableDates) == -1) {
            return [true, ""];
        } else {
            return [false, "", "Unavailable"];
        }
        }
    </script>
    <script type="text/javascript">
       $(function () {
          $("#datepicker").datepicker({
            beforeShowDay: unavailable,
            minDate: 0
          });
       });
    </script>

1 Ответ

1 голос
/ 14 февраля 2012

Вам необходимо сравнить введенную дату с другим объектом даты. Вместо этого вы сравниваете его с элементами в массиве строк.

Я бы использовал valueOf или getTime, которые возвращают количество миллисекунд с 01 января UTC для сравнения:

var unavailableDates = [
    new Date(2012, 1, 20).valueOf(),
    new Date(2012, 1, 27).valueOf()
];

function unavailable(date) {
    if (date.getDay() === 1 && $.inArray(date.valueOf(), unavailableDates) < 0) {
        return [true, ""];
    } else {
        return [false, "", "Unavailable"];
    }
}

$(document).ready(function() {
    $("#date").datepicker({
        beforeShowDay: unavailable
    });
});​

Пример: http://jsfiddle.net/aThZG/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...