2012-09-29 12 views
7

को सक्षम करने के लिए मैं ट्विटर बूटस्ट्रैप पर आधारित कुछ प्रोजेक्ट पर काम कर रहा हूं जो https://github.com/eternicode/bootstrap-datepicker (जो किसी अन्य संस्करण से कांटा है) से डेटपिकर का उपयोग कर रहा है, लेकिन इसमें एक बहुत ही महत्वपूर्ण विशेषता है जो मुझे चाहिए - केवल विशिष्ट तिथि सीमा को सक्षम करने के लिए (जैसे कि पिछले 15 दिनों से आज तक), इसलिए किसी अन्य तारीख को भी चुना नहीं जा सकता है (क्लिक करने योग्य नहीं)।ट्विटर बूटस्ट्रैप डेटपिकर: केवल विशिष्ट डटेरेंज

मैं एक ऐसी ही समाधान इतने पर यहाँ है, जो शनिवार और रविवार को निष्क्रिय पाया: Limit bootstrap-datepicker to weekdays only? http://jsfiddle.net/katowulf/zNbUT/5/, लेकिन मुझे पता है कि मेरी जरूरतों के लिए इसे समायोजित करने के लिए नहीं है।

अग्रिम धन्यवाद।

उत्तर

14

समान प्रश्न आप काफी हैक का उपयोग कर समाप्त हो गया से जुड़ा हुआ है, लेकिन क्या आप चाहते हैं बहुत आसान है - आप startDate और endDate विकल्पों की तलाश कर रहे:

$('#dp1').datepicker({ 
    format: 'mm-dd-yyyy', 
    startDate: '-15d', 
    endDate: '+0d' // there's no convenient "right now" notation yet 
}); 

ये विकल्प Date ऑब्जेक्ट्स, टाइमडेल्टा स्ट्रिंग्स (जैसे मैंने यहां किया था), या format के बाद दिनांक तारों को ले सकते हैं।

डेमो: http://jsfiddle.net/zNbUT/131/

इसके अलावा, आप GitHub से कोड का उपयोग कर रहे यह सुनिश्चित कर लें - eyecon.ro की प्रतिलिपि, मूल कोड है वर्ष कीड़े के साथ और नई सुविधाओं के बिना।

+0

http://stackoverflow.com/questions/11933173/how-to-restrict-the-selectable-date-ranges-in-bootstrap-datepicker पर पहले से ही यह समाधान मिला है। क्या प्रतिबंधित दिन "ग्रेड-आउट" बनाने का कोई विकल्प है, इसलिए उपयोगकर्ता देख सकते हैं कि वे कोशिश करने से पहले कौन सी तिथियां चुन सकते हैं? – jabbalesku

+0

यदि आप रेपो में शामिल शैलियों का उपयोग करते हैं तो अक्षम दिनों को पहले से ही बाहर कर दिया जाना चाहिए। – eternicode

3
var startDate = new Date(); 
startDate.setDate(startDate.getDate()-15); 

var endDate = new Date(); 

$('#dp1') 
.datepicker().on('changeDate', function(ev){ 
    if (ev.date.valueOf() > endDate.valueOf()){ 
     alert('The date selected is too far in the future.'); 
    } else if (ev.date.valueOf() < startDate.valueOf()){ 
     alert('The date selected is too far in the past'); 
    } else { 
     alert('fine') 
    } 

});

http://jsfiddle.net/XSmx6/14/

+0

काम न करें। यहां आज़माएं: http://jsfiddle.net/XSmx6/1/ – jabbalesku

+0

आपको एक हैंडलर सेट करना होगा और चयन से रद्द करना होगा यदि यह सीमा से बाहर है। –

+0

@jabbalesku मैंने अपडेट किया है और एक jsfiddle – Harry

संबंधित मुद्दे