Как работи методът beforeShowDay? (Jquery UI инструмент за избор на дати)

Опитвам се да намеря ясно обяснение от доста време, но просто не мога да разбера как работи този метод. По-долу е официалната документация от Jquery UI API. За другите може да е ясно, но на мен ми е малко неясно. Просто искам да взема масив от дати и да ги деактивирам. Мога да направя всички дати неизбираеми, но не и тези, които искам.

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

По подразбиране: нула

Функция, която приема дата като параметър и трябва да върне масив с:

[0]: вярно/невярно, показващо дали тази дата може да бъде избрана или не [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