2017-03-18 15 views
-1

FullCalendar内の特定の日を無効にしようとしています。私は日付をブロックまたはブロック解除するデータベースの配列を持っています。jQuery inArray()はFullCalendarのselectオプションで日を無効にします

私が​​を以下のように使用すると、カレンダー内のすべての日がブロックされます。 jQueryの教祖ではないので、私はここでいくつかの助けが必要です。

これはこれまで私が行ってきたことです。

select: function(start, end, jsEvent, view) { 
    var disabledDates = ['2017-03-17', '2017-03-23']; 

    if($.inArray(disabledDates) !== -1) { 
     swal({ 
      title: "Date is blocked", 
      text: "Sorry, the maximum Daily Bookings have been reached. Please select another date.", 
      type: "warning" 
     }); 

     $('#calendar').fullCalendar('unselect'); 
     return false; 
    } else { 
     $('#ModalAdd .start').val(moment(start).format('YYYY-MM-DD HH:mm:ss')); 
     $('#ModalAdd .end').val(moment(end).format('YYYY-MM-DD HH:mm:ss')); 
     $('#ModalAdd').modal('show'); 

     $('#calendar').fullCalendar('unselect'); 
     return true; 
    }; 
} 

大変お勧めします。

EDIT

私は上記の私の質問を編集しているが、それでもこれは仕事を得ることができない、それだけでtrueまたはfalseのいずれかを返す必要があります。

私がselect: functionを使用している理由は、配列に日付があるとモデルが表示されないようにするためです。

なぜこれは機能しませんか?

+0

私はFullCalendarに精通していませんが、なぜあなたは日を無効にするために 'select'コールバックを使用していますか? [dayRender](https://fullcalendar.io/docs/display/dayRender/)を使用して視覚的に無効にするべきではないか(おそらくクラスを介して)、[selectAllow](https://fullcalendar.io/docs)/selection/selectAllow /)を使用してルールを適用しますか?私の理解は、 '選択された'が発射されれば、既に遅すぎます。おそらく私は間違っています – Dogoku

+0

また、上のコードを見て、あなたは 'disabled'''文字列を' disabledDates'配列に束縛しています。次に、同じ文字列が常に真である配列にあることを確認しています! – Dogoku

+0

私は上記の質問を編集しましたが、まだ喜びはありません:-( – John

答えて

0

誰かがこのソリューションを必要とする場合は、私はついにそれを働かせました。

select: function(start, end, jsEvent, view) { 
    var disabledDates = ['2017-03-17', '2017-03-23']; 
    var selectedDate = moment(start).format('YYYY-MM-DD'); 

    if($.inArray(selectedDate, disabledDates) !== -1) { 
     swal({ 
      title: "Date is blocked", 
      text: "Sorry, the maximum Daily Bookings have been reached. Please select another date.", 
      type: "warning" 
     }); 

     $('#calendar').fullCalendar('unselect'); 
     return false; 
    } else { 
     $('#ModalAdd .start').val(moment(start).format('YYYY-MM-DD HH:mm:ss')); 
     $('#ModalAdd .end').val(moment(end).format('YYYY-MM-DD HH:mm:ss')); 
     $('#ModalAdd').modal('show'); 

     $('#calendar').fullCalendar('unselect'); 
     return true; 
    }; 
} 
関連する問題