2012-02-13 47 views
1

月曜日のみを表示し、jQueryのdatePickerのbeforeShowDayパラメータで特定の日付を無効にするのに問題があります...ユーザーが選択できるようにしたい2012年2月20日および2012年2月27日を除く月曜日が、これを実装する方法を確認していない...jQuery Datepickerは月曜のみを表示し、特定の月曜日は無効にする

<script type="text/javascript"> 
     var unavailableDates = ["20-02-2012", "27-12-2012"]; 
     function unavailable(date) { 
     dmy = (date.getDay() == 1); 
     if ($.inArray(dmy, unavailableDates) == -1) { 
      return [true, ""]; 
     } else { 
      return [false, "", "Unavailable"]; 
     } 
     } 
    </script> 
    <script type="text/javascript"> 
     $(function() { 
      $("#datepicker").datepicker({ 
      beforeShowDay: unavailable, 
      minDate: 0 
      }); 
     }); 
    </script> 

答えて

1

あなたは別の日付オブジェクトと日付で渡さ比較する必要があります。代わりに、文字列の配列内の項目と比較しています。

私は比較を行うために1月1日UTCからのミリ秒数を返しvalueOfまたはgetTimeを使用します。

var unavailableDates = [ 
    new Date(2012, 1, 20).valueOf(), 
    new Date(2012, 1, 27).valueOf() 
]; 

function unavailable(date) { 
    if (date.getDay() === 1 && $.inArray(date.valueOf(), unavailableDates) < 0) { 
     return [true, ""]; 
    } else { 
     return [false, "", "Unavailable"]; 
    } 
} 

$(document).ready(function() { 
    $("#date").datepicker({ 
     beforeShowDay: unavailable 
    }); 
});​ 

例:http://jsfiddle.net/aThZG/

+0

グレート、これは完全に働いています。私は1つの質問がある。指定された月が1月(1月)の2月20日と27日は、次のように無効になります。 'new Date(2012、1、20).valueOf()' – r584

+1

'Date'コンストラクタの' month'引数は0ベースです。詳細は、['Date'](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Date)ドキュメントを参照してください。 –

関連する問題