2014-01-26 58 views
0

我的要求如下;如何通過傳遞日期數組來操作jquery datepicker?

如果datepicker的日期與使用數組的傳遞日期相匹配,那麼它應該在懸停和顯示出售時顯示hello。 我嘗試下面的代碼

var rateArray = [new Date(2014, 1, 1), new Date(2014, 1, 2)]; // just some dates. 
var date = new Date(); 
$(document).ready(function() { 

    $("#test").datepicker({ 
     beforeShowDay: function (date) { 
      if ($.inArray(date, rateArray)) { 
       return [true, 'tiptip', 'hello']; 
      } 
      else { 
       return [false, 'tiptip', 'Sold']; 
      } 
     } 


    }); 

}); 

但它不工作,它顯示「你好」在每一個日期。如果有人知道解決方案,請幫助,謝謝。

回答

1

嘗試

//use a string representation for the date 
var rateArray = ['01 Jan 2014', '02 Jan 2014']; // just some dates. 
$(document).ready(function() { 
    $("#test").datepicker({ 
     beforeShowDay: function (date) { 
      //convert the date to a string format same as the one used in the array 
      var string = $.datepicker.formatDate('dd M yy', date) 
      // $.inArray() returns -1 if the item is not found so change the condition accordingly 
      if ($.inArray(string, rateArray) > -1) { 
       return [true, 'tiptip', 'hello']; 
      } else { 
       return [false, 'tiptip', 'Sold']; 
      } 
     } 
    }); 
}); 

演示:Fiddle

+0

記住JS個月從0開始 - 所以他不得不看at Feb – mplungjan

+0

@mplungjan yes .... –

+1

@ArunPJohny非常感謝你的兄弟,神話般的。還有一個問題,我想把這個「.cs」頁面的日期數組傳遞給「腳本」頁面,我不知道該如何實現這一點,如果可以的話,請幫助我。 – Learner

0

由現在刪除回答啓發:

Live Demo

var dates = {}; 
dates[new Date('02/13/2014').getTime()]='Holiday1'; 
dates[new Date('02/14/2014').getTime()]='Holiday2'; 
dates[new Date('02/15/2014').getTime()]='Holiday3'; 

$('#txtDate').datepicker({ 
    beforeShowDay: function(date) { 
     var hlText = dates[date.getTime()]; 
     return (hlText)?[true, "tiptip", hlText]: [true, '', '']; 
    } 
});