Как работает метод beforeShowDay? (датчик пользовательского интерфейса Jquery)

Я пытался найти четкое объяснение в течение значительного времени, но я просто не могу понять, как работает этот метод. Ниже приведена официальная документация по Jquery UI API. Для других это может быть ясно, но я нахожу это немного расплывчатым. Я просто хочу взять массив дат и отключить их. Я могу сделать все даты недоступными для выбора, но не те, которые я хочу.

beforeShowDayType: Функция (Дата Дата)

По умолчанию: ноль

Функция, которая принимает дату в качестве параметра и должна возвращать массив с:

[0]: true/false, указывающий, можно ли выбрать эту дату. [1]: имя класса CSS для добавления в ячейку даты или "" для представления по умолчанию. [2]: необязательная всплывающая подсказка для этой даты.

Функция вызывается для каждого дня в средстве выбора даты перед его отображением.


Это мой (неполный) код.

$(document).ready(function() {
    var array = ["2014-01-03","2014-01-13","2014-01-23"];
    $('#fromDate').datepicker({
        dateFormat: "yy-mm-dd",
        beforeShowDay: function(date) {
            {
                return [false, "", "Booked out"];
            } else {
                return [true, "", "available"];
            }
        }
    });
});

person chap    schedule 09.02.2014    source источник
comment
Похоже, хорошее начало. Теперь все, что вам нужно, это оператор if между этими двумя {. Переменная date будет датой принятия решения, поэтому ваше условие в основном if ( dateIsBookedOut(date) )   -  person IMSoP    schedule 10.02.2014


Ответы (1)


Попробуй это:

beforeShowDay: function(date) {
    if($.inArray($.datepicker.formatDate('yy-mm-dd', date ), array) > -1)
    {
        return [false,"","Booked out"];
    }
    else
    {
        return [true,'',"available"];
    }
}
person Jain    schedule 10.02.2014
comment
согласен, но это только тогда, когда конструктор jquery ($) связан с чем-то другим. - person Jain; 15.01.2016