jQuery Datepicker Перед выставкой два массива дат

0

У меня есть один массив для отключенных дат, а другой - для выделения дат. Есть ли способ закодировать это?

например:

beforeShowDay: function(date){
    var unavilble = jQuery.datepicker.formatDate('yy/mm/dd', date);
    var newstring = [ arrayable.indexOf(unavilble) == -1 ];
    return newstring;
    },

Второй массив:

var datet = ['2014/01/19', '2014/01/20'];
        //tips are optional but good to have
var tips  = ['some description','some other description'];      

function highlightDays(date) {
    for (var i = 0; i < datet.length; i++) {
        if (new Date(datet[i]).toString() == date.toString()) {              
            return [true, 'highlight', tips[i]];
        }
    }
    return [true, ''];
 } 
beforeShowDay: highlightDays,
  • 0
    может ли один и тот же день быть там в обоих массивах
  • 0
    проверьте jsfiddle.net/arunpjohny/Den5V/2
Показать ещё 2 комментария
Теги:
arrays
datepicker

1 ответ

2
Лучший ответ

Попробуйте что-нибудь вроде

var datet = ['2014/01/19', '2014/01/20'];
//tips are optional but good to have
var tips = ['some description', 'some other description'];
var arrayable = ['2014/01/01', '2014/01/08', '2014/01/15', '2014/01/22', '2014/01/29']
$('input').datepicker({
    dateFormat: 'yy/mm/dd',
    beforeShowDay: function (date) {
        var datestring = jQuery.datepicker.formatDate('yy/mm/dd', date);
        var hindex = $.inArray(datestring, datet);
        if (hindex > -1) {
            return [true, 'highlight', tips[hindex]];
        }
        var aindex = $.inArray(datestring, arrayable);
        return [aindex == -1]
    }
})

Демо: скрипка

  • 0
    отлично, спасибо Арун!
  • 0
    Привет Арун. Я попробовал ваш код, он работает как есть, но он не работает с массивом, который динамически заполняется. Не знаю почему? Он выделяет все даты в календаре. Есть идеи?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню