2013-02-20 48 views
17

समस्या यह है कि पूर्ण कैलकुलेटर के महीने/सप्ताह दृश्य में पिछली तिथियों पर चयन करने योग्य कैसे अक्षम करें।पिछली तारीख को पूर्ण कैलकुलेटर में अचयनित करने के लिए कैसे करें?

मैं उपयोगकर्ता को पिछली तिथियों पर क्लिक/चयन करने की अनुमति नहीं देना चाहता हूं।

enter image description here

यहाँ कुछ Googled कोड स्निपेट मैं प्रतिपादन घटना पर लागू करने के लिए कोशिश कर रहा हूँ है:

selectable: true, 
selectHelper: false, 
select: function(start, end, allDay) { 
     var appdate = jQuery.datepicker.formatDate('<?php echo $DPFormat; ?>', new Date(start)); 
     jQuery('#appdate').val(appdate); 
     jQuery('#AppFirstModal').show(); 
    }, 
    eventRender: function(event, element, view) 
    { 
     var view = 'month' ; 
     if(event.start.getMonth() !== view.start.getMonth()) { return false; } 
    }, 

लेकिन इसकी हालांकि काम नहीं कर रहा।

मैंने सीएसएस को भी बोले जाने की कोशिश की और यह मुझे केवल पिछले दिनांक पाठ को छिपाने में मदद करता है, लेकिन चुनिंदा अभी भी पेस्टडेट बॉक्स पर काम कर रहा है।

.fc-other-month .fc-day-number { 
    display:none; 
} 

मैं वास्तव में इस समस्या से फंस गया हूं। कृपया कोई मेरी मदद करें। धन्यवाद ...

उत्तर

23

मैंने इसे अपने पूर्ण कैलकुलेटर में किया है और यह पूरी तरह से काम कर रहा है।

आप इस कोड को अपने चयन फ़ंक्शन में जोड़ सकते हैं।

select: function(start, end, allDay) { 
    var check = $.fullCalendar.formatDate(start,'yyyy-MM-dd'); 
    var today = $.fullCalendar.formatDate(new Date(),'yyyy-MM-dd'); 
    if(check < today) 
    { 
     // Previous Day. show message if you want otherwise do nothing. 
     // So it will be unselectable 
    } 
    else 
    { 
     // Its a right date 
     // Do something 
    } 
    }, 

मुझे उम्मीद है कि यह आपकी मदद करेगा। मैं इस दृष्टिकोण की तरह

 select: function(start, end, jsEvent, view) { 
      if (moment().diff(start, 'days') > 0) { 
       $('#calendar').fullCalendar('unselect'); 
       // or display some sort of alert 
       return false; 
      } 
+0

हाय मैट, आपने मेरा दिन बनाया। महान धन्यवाद ... – Frank

+1

यहां इसका उपयोग कर रहा हूँ। धन्यवाद। upgradezilla.com/wordpress-google/?page_id=8 – Frank

+0

यह सब ठीक है फ्रैंक .. आपका स्वागत है .. – Mausami

4

आप को जोड़ सकते हैं:

सीएसएस द्वारा

-hide पाठ के रूप में प्रश्न में आपका उल्लेख

- dayClick/eventDrop आदि पर disable PREV button on current month

की जाँच करें तारीख:

dayClick: function(date, allDay, jsEvent, view) { 
    var now = new Date(); 
    if (date.setHours(0,0,0,0) < now.setHours(0,0,0,0)){ 
     alert('test'); 
    } 
    else{ 
     //do something 
    } 
} 
+0

बहुत बहुत धन्यवाद @ लुकाज़ कोझियारा – Frank

1
नीचे

समाधान मैं अब का उपयोग कर रहा है

select: function(start, end) { 
    if(start.isBefore(moment())) { 
     $('#calendar').fullCalendar('unselect'); 
     return false; 
    } 
} 

यह होगा इससे पहले कि "अब" समय पर अनिवार्य रूप से अक्षम है।

Unselect method

15

:

+3

यह चुने गए उत्तर से कहीं बेहतर दृष्टिकोण है। इवेंट ड्रोप के लिए बस इसे जोड़ने की ज़रूरत है और मैं जाने के लिए अच्छा हूं :) –

1

this answer के लिए धन्यवाद, मैं समाधान के नीचे पाया गया है:

$('#full-calendar').fullCalendar({ 
    selectable: true, 
    selectConstraint: { 
     start: $.fullCalendar.moment().subtract(1, 'days'), 
     end: $.fullCalendar.moment().startOf('month').add(1, 'month') 
    } 
}); 
0

एक लंबे कार्यक्रम के लिए कोई ज़रूरत नहीं, बस इस प्रयास करें।

checkout.setMinSelectableDate(Calendar.getInstance().getTime());  
Calendar.getInstance().getTime() 

हमें वर्तमान तिथि देता है।