2016-04-19 25 views
1

データベースに保存されている日付を無効にしようとしています。日付ピッカー無効日

<script type="text/javascript"> 

    var dates = JSON.stringify('<?php echo json_encode($darray); ?>'); 
    function BookedDates(date) { 
     for (var i = 0; i < dates.length; i++) { 
      if (new Date(dates[i]).toString() == date.toString()) { 
       return [false]; 
      } 
     } 
     return [true]; 
    } 
    // alert(dates) 
    console.log(dates); 
</script> 

<p>Date: <input type="date" class="datepicker2" name="date"></p> 

ちょうどそのようなコンソールに印刷日付上記のスクリプトは:

$(function(){ 
    $('.datepicker2').pickadate({ 
     dateFormat: 'yy/mm/dd', 
     beforeShowDay:[ 
      BookedDates 
     ] 
    }); 
}); 

I:私は日付ピッカーでこれらの日付を無効にしようとすると、

"[{\"date\":\"2016-04-02\"},{\"date\":\"2016-04-08\"},{\"date\":\"2016-04-15\"},{\"date\":\"2016-04-29\"},{\"date\":\"2016-05-07\"}]" 

しかし、問題が来ますコンソール上で何のエラーも何も得られない場合、配列からの日付は単に無効にされていないので、何か助けていただければ幸いです。

+0

私はこれについてはわかりませんが、私は同様の答えのカップルをチェックアウトしました。私には2つの提案があります。 []を削除し、 'beforeShowDay:BookedDates'と書くだけです。また、配列内の日付フォーマットとdatepickerを一致させようとしましたか?現在、区切り文字として/と区切り文字があります。 – KjetilNordin

+0

はい、それは関数なので、一致する日付形式を試しました。 –

+0

BookedDatesにログを記録しようとしましたが、まったく呼び出されていませんか?そして、あなたは実際の等価チェックを記録しようとしましたか? – KjetilNordin

答えて

1

JQuery UIのdatePickerに属する機能を実装しようとすると、pickadate.jsを使用しているようです。それらは2つの異なる図書館です。あなたはpickadate.js APIに行き、そこに解決策を見つける必要があります。

http://amsul.ca/pickadate.js/api/

ここでは、関連する部分の短い要約です:

あなたは、日付のセットを無効にすることができ、その後、

特定の日付:

以下の方法でセット全体、またはそれらの組内 特定の日付を有効にします
picker.set('disable', [ 

    // Using a collection of arrays formatted as [YEAR,MONTH,DATE] 
    [2016,9,3], [2016,9,9], [2016,9,20], 

    // Using JavaScript Date objects 
    new Date(2015,9,13), new Date(2015,9,24) 
]) 
picker.set('enable', [ 
    [2016,9,9], 
    [2016,9,13], 
    new Date(2015,9,20) 
]) 
関連する問題