2014-02-09 2 views
4

Я пытаюсь найти ясное объяснение в течение значительного времени, но я просто не могу понять, как работает этот метод. Ниже приведена официальная документация API JQuery UI. Это может быть ясно для других, но я считаю это немного расплывчатым. Я просто хочу взять массив дат и отключить их. Я могу сделать все даты не подбираемыми, а не теми, которые я хочу.Как работает метод beforeShowDay? (JQuery UI datepicker)

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

По умолчанию: нулевой

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

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

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


Это мой (неполный) код до сих пор.

$(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"]; 
      } 
     } 
    }); 
}); 
+3

Похоже, хороший старт. Теперь все, что вам нужно, это оператор 'if' между этими двумя' {'s. Переменная 'date' будет датой принятия решения, поэтому ваше условие в основном' if (dateIsBookedOut (date)) ' – IMSoP

ответ

5

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

beforeShowDay: function(date) { 
    if($.inArray($.datepicker.formatDate('yy-mm-dd', date), array) > -1) 
    { 
     return [false,"","Booked out"]; 
    } 
    else 
    { 
     return [true,'',"available"]; 
    } 
} 
+0

Во многих случаях $ следует заменить на jQuery – A2D

+1

, но это только в случае, когда конструктор jquery ($) связаны с чем-то другим. – Jain

Смежные вопросы