2016-04-05 19 views
0

特定の日付を無効にする必要があるカレンダーがあります。jquery datepickerで特定の日付を無効にすることはできません

私はspiceforms.com/blog/how-to-disable-dates-in-jquery-datepicker-a-short-guide/のコードを例として使用していましたが、それはうまくいきましたが、動作を停止し、私は原因を見つけることができない、 私のコードは次のとおりです。

function Disableentries(date) { 
    // here I get an array of dates in yyyy-mm-dd format 
    var datesarray = datesfromcalendar(); 

    var arraynoentry = datesarray[0]; 
    var m = date.getMonth(); 
    var d = date.getDate(); 
    var y = date.getFullYear(); 
    var currentdate = y + '-' + (m + 1) + '-' + d ; 

    // We will now check if the date belongs to disabled dates array 
    for (var i = 0; i < arraynoentry.length; i++) { 
     // Now check if the current date is in disabled dates array. 
     if (jQuery.inArray(currentdate, arraynoentry) != -1) { 
      return [0]; 
     }else{ 
      return [1]; 
     } 
    } 
} 

jQuery(function() { 
    jQuery("#edit-available-from-datepicker-popup-0-bloque").datepicker({ 
     minDate: 0, 
     beforeShowDay: Disableentries, 
     dateFormat: 'dd-mm-yy', 
    }); 
}); 

私はいくつかの日付が無効になってもらうが、彼らは、アレイ内のものじゃない、このコードの結果。私は2016年12月31日に2016年10月29日から全カレンダー無効取得し、マイ無効の日付が下の写真に示したものであり、何も: calendar 1 calendar 2

は¿コードで何も悪いことはありませんまたはこの問題を解決する他の方法ですか?

編集:datesfromcalendar()関数は、ピクチャに表示されるカレンダーから に設定する必要がある日付を取得します。ここ コードです:私は、問題を発見した

function datesfromcalendar(){ 
    var arraynoentry= ['2000-01-15']; 
    var arraynoexit= ['2000-01-16']; 
    jQuery('.cal-month').each(function(){ 
    var month = jQuery(this).data("cal-month"); 
    var year = jQuery(this).data("cal-year"); 
    //alert(month); 
    var noentry = jQuery(this).find('.cal-na-pm'); 
    var noexit = jQuery(this).find('.cal-na-am'); 
    jQuery.each(noentry,function(){ 
     var day = jQuery(this).text(); 
     arraynoentry.push(year + "-" + month + "-" + dia); 
     //block entries 
     //alert('hello'); 
    }) 
    jQuery.each(nosalida,function(){ 
     var day = jQuery(this).text(); 
     arraynoexit.push(year + "-" + month + "-" + dia); 
     //block exits 
     //alert('bye'); 
    }) 
    }) 
    var results = [arraynoentry,arraynoexit]; 
    return results; 
} 
+0

は、私たちに正常に動作し、私は(私はそれを最初にチェックする)写真のカレンダーから入手無効日付を返すdatesfromcalendarあなたの関数 'datesfromcalendar()'すぎ – urbz

+0

機能を表示します私はそれをとにかくここに入れます。 –

答えて

0

月に1を加算すると(0から11から月を1から12に変換する場合)、結果は整数(1,2,3 ... 10,11,12)になります。配列の日付は01,02,03(...)形式の月を持ちますので、比較すると2桁の月のみが正しい結果を返します。

これを解決するには、月の形式を配列のものと一致するように変更して比較できるようにする必要があります。 このコードは、トリックを行います。

var currentdate = y + '-' + ('0'+(m + 1)).slice(-2) + '-' + d ; 
関連する問題