2014-01-09 2 views
0

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

например:

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

проверьте http: // jsfiddle.net/arunpjohny/Den5V/2/ –

+0

ли один из массивов будет подмножеством другого –

ответ

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] 
    } 
}) 

Демо: Fiddle

+0

отлично, спасибо Арун! – David

+0

Привет, Арун. Я пробовал ваш код, он работает как есть, но он не работает с массивом, который динамически заполняется. Не знаете, почему? Он выделяет все даты в календаре. Есть идеи? – Superman

+0

Проблемой может быть формат значений в массиве –

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