2013-04-28 4 views
20

मुझे jQuery डेटपिकर के साथ कोई विशेष समस्या है। मैं आसानी से एक तिथि सीमा जोड़ सकता हूं, लेकिन मैं चुनिंदा रेंज को उपयोगकर्ता द्वारा चुने गए ईवेंट के आधार पर बदलना चाहता हूं।jQuery डेटपिकर - फ्लाई पर minDate और maxDate को बदलना

तो यदि वे ईवेंट # 1 चुनते हैं, तो वे केवल ईवेंट # 1 की तिथि सीमा से तिथियां चुन सकते हैं।

मैंने एक साधारण छोटा फ़ंक्शन लिखा है जिसे उपयोगकर्ता जब भी एक नया ईवेंट चुनता है, लेकिन यह केवल प्रारंभिक रूप से निर्धारित मिनटडेट/अधिकतमडेट मान दिखाता है।

function datepicker(startDate, endDate) { 
    $("#date").datepicker({ 
    inline: true, 
    minDate: new Date(startDate), 
    maxDate: new Date(endDate), 
    dateFormat: 'dd/mm/yy' 
    }); 
} 

मैं ऊपर समारोह फिर से कॉल, अगर यह सही तारीखों के साथ एक नया उदाहरण बनाता है देखने के लिए पहले $('#date').datepicker('remove'); बुला की कोशिश की है, लेकिन यह काम करने के लिए प्रतीत नहीं होता।

मैंने डेवलपर टूल के माध्यम से सभी डेटा की जांच की है और सब कुछ ठीक से बुलाया जा रहा है और पारित किया जा रहा है। क्या यह काम करने के लिए मैं कुछ भी कर सकता हूं जिसे मैं चाहता हूं?

+4

DID आप '$ ('# date') का प्रयास करें। डेटपिकर ('विकल्प', {minDate: नई तिथि (स्टार्टडेट)}); प्रति http://api.jqueryui.com/datepicker/#method- विकल्प जो आपको फ्लाई पर विकल्पों को बदलने की अनुमति देता है। –

+1

@ स्टेवेनवंड्रुस्का मैंने इसे नहीं देखा। धन्यवाद, यह एक इलाज काम किया! अगर आपको पसंद है तो इसे उत्तर में रखें। –

उत्तर

49

आप विकल्पों में से एक जोड़ी है ...

1) आप destroy() विधि नहीं remove() तो ...

$('#date').datepicker('destroy'); 

फिर datepicker वस्तु को पुन: करने के लिए अपने विधि कॉल कॉल करने के लिए की जरूरत है।

2) आप मौजूदा object की संपत्ति को अपडेट कर सकते

$('#date').datepicker('option', 'minDate', new Date(startDate)); 
$('#date').datepicker('option', 'maxDate', new Date(endDate)); 

या के माध्यम से ...

$('#date').datepicker('option', { minDate: new Date(startDate), 
            maxDate: new Date(endDate) }); 
+4

नया एपीआई "minValue" या "maxValue" के बजाय "minDate" या "maxDate" के लिए कॉल करता है। मुझे यह महसूस करने के लिए 10 मिनट लग गए (चेहरा हथेली)। – Michael

+0

@ माइकल टिप्पणी में शामिल करने के लिए धन्यवाद! – Jared

+0

मैंने इस कोड को आजमाया लेकिन मुझे त्रुटि मिल रही है कि Uncaught टाइप त्रुटि: datepicker कोई फ़ंक्शन नहीं है। = एस –

7

/से तारीख करने के लिए के लिए, यहाँ है मैं कैसे के आधार पर दिनांक सीमित कार्यान्वित तारीख को अन्य डेटपिकर में दर्ज किया गया। काफ़ी अच्छा काम करता है:

function activateDatePickers() { 
    $("#aDateFrom").datepicker({ 
     onClose: function() { 
      $("#aDateTo").datepicker(
        "change", 
        { minDate: new Date($('#aDateFrom').val()) } 
      ); 
     } 
    }); 
    $("#aDateTo").datepicker({ 
     onClose: function() { 
      $("#aDateFrom").datepicker(
        "change", 
        { maxDate: new Date($('#aDateTo').val()) } 
      ); 
     } 
    }); 
} 
2
$(document).ready(function() { 
$("#aDateFrom").datepicker({ 
    onSelect: function() { 
     //- get date from another datepicker without language dependencies 
     var minDate = $('#aDateFrom').datepicker('getDate'); 
     $("#aDateTo").datepicker("change", { minDate: minDate }); 
    } 
}); 

$("#aDateTo").datepicker({ 
    onSelect: function() { 
     //- get date from another datepicker without language dependencies 
     var maxDate = $('#aDateTo').datepicker('getDate'); 
     $("#aDateFrom").datepicker("change", { maxDate: maxDate }); 
    } 
}); 
}); 
0

मैं तुम्हें Datepicker का उपयोग कर रहे हैं, लेकिन कुछ लोग हैं जो सिर्फ प्रयोग कर रहे हैं मेरे जैसे एचटीएमएल 5 इनपुट तारीख के लिए, वहाँ एक उदाहरण है कि कैसे आप भी ऐसा कर सकते है: JSFiddle Link

$('#start_date').change(function(){ 
    var start_date = $(this).val(); 
    $('#end_date').prop({ 
    min: start_date 
    }); 
}); 


/* prop() method works since jquery 1.6, if you are using a previus version, you can use attr() method.*/ 
संबंधित मुद्दे