2012-08-26 14 views
11

का उपयोग कर मैं दो dropdownlist कि महीनों और वर्षों पकड़ है जाओ ...चालू माह और तारीख jQuery

$(document).ready(function() {    
    $('#Months option:eq(' + (new Date).getMonth() + ')').prop('selected', true); 
     alert((new Date).getMonth());   
    $('#Years option:eq(' + (new Date).getFullYear() + ')').prop('selected', true); 
     alert((new Date).getFullYear()); 
}); 

मैं के रूप में ऊपर JQuery पटकथा लिखी है ताकि जब मेरी कार्यक्रम चलाता है लटकती चयनित मान वर्तमान में होना चाहिए महीना और वर्ष ..

लेकिन जब मैं प्रोग्राम निष्पादित करता हूं .. अलर्ट 7 और 2012 देता है .. लेकिन मेरे विचार में वर्तमान माह चुना गया है लेकिन वर्तमान वर्ष क्यों नहीं है ?? और मैं वर्तमान वर्ष का चयन करने के लिए अपना ड्रॉपडाउन कैसे बना सकता हूं ??

+1

कुछ और कोड दें और jsfiddle.net पर डेमो पोस्ट करें –

उत्तर

17

jQuery

var d = new Date(), 

    n = d.getMonth(), 

    y = d.getFullYear(); 

$('#months option:eq('+n+')').prop('selected', true); 

$('#years option[value="'+y+'"]').prop('selected', true); 

एचटीएमएल

​<select id="months"> 
    <option value="1">January</option> 
    <option value="2">February</option> 
    <option value="3">March</option> 
    <option value="4">April</option> 
    <option value="5">May</option> 
    <option value="6">June</option> 
    <option value="7">July</option> 
    <option value="8">August</option> 
    <option value="9">September</option> 
    <option value="10">October</option> 
    <option value="11">November</option> 
    <option value="12">December</option> 
</select> 
<select id="years"> 
    <option value="2011">2011</option> 
    <option value="2012">2012</option> 
    <option value="2013">2013</option> 
</select> 

DEMO

+0

बहुत बहुत धन्यवाद ... काम किया .. –

2

महीने 0 से 11 (जनवरी) (दिसंबर) से एक पूर्णांक के रूप में वापस कर रहे हैं: देख http://www.java2s.com/Tutorial/JavaScript/0240__Date/DategetMonth.htm

तो चालू माह (अगस्त) 7. वापसी होगी सामान्य के साथ मैच के लिए सक्षम होने के लिए महीने सूचकांक (अर्थ 1 से 12), ((new Date()).getMonth() + 1) का उपयोग करें।

के रूप में टिप्पणी में कहा, मैं इस समस्या को गलत समझा। महीने के महीने के लिए शून्य आधारित सरणी और jQuery चयनकर्ता :eq() किया जा रहा है भी शून्य आधारित की वजह से सही है।

हालांकि के रूप में अन्य उत्तर में कहा, साल लौटे :eq() जो jQuery चयनकर्ता में nth तत्व से मेल खाता है से मेल नहीं होता। सुझाए गए option[value=' + (new Date).getFullYear() + ')' के रूप में उपयोग करना बेहतर होगा।

+0

ओपी को चालू वर्ष के साथ समस्याएं हैं: "मेरे विचार में वर्तमान माह चुना गया है लेकिन वर्तमान वर्ष क्यों नहीं है ??" – nemesv

+0

मैं मतलब नहीं था कि मेरी ड्रॉपडाउन सूची में अगस्त से पता चलता है लेकिन मैं इस सूची में नीचे मेरी दूसरी ड्रॉप में 2012 दिखाना चाहते हैं ... के रूप में इसे 2007 यानी न्यूनतम मूल्य दिखा रहा है .. –

+0

@nemesv: मैं एक ही पूछना चाहता हूँ सवाल?? –

1

jQuery में चयनकर्ता की :eq(N) भाग का चयन करता है में (0 सहित) वां तत्व का मिलान नहीं हुआ रों एट (जो उस बिंदु पर #Years option होगा)। तो जब तक आप Years लटकती में और अधिक तो 2012 विकल्प हैं, इस काम नहीं करेगा।

यह इस पर आधारित विकल्प का चयन करना बेहतर है मूल्य है: option[value=2012] या

just use $("#Years").val(2012), इसे और अधिक पठनीय और कम कोड है।

+0

लेकिन मेरा अलर्ट संदेश 2012 दिखाता है .. –

+0

@ sna2stha: और? आपकी अलर्ट सिर्फ चालू वर्ष दिखाती है, न कि कौन सा विकल्प चुना गया है। – lqc

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