2010-06-29 18 views
8

मैं एक परियोजना के लिए jQuery UI Datepicker का उपयोग कर रहा हूं, लेकिन जब उपयोगकर्ता उस पर क्लिक करता है तो टेक्स्टफील्ड में दिनांक दर्ज करने के लिए आज बटन की आवश्यकता होती है। डिफ़ॉल्ट रूप से यह सिर्फ तारीख का चयन करता है लेकिन इसे फ़ील्ड में दर्ज नहीं करता है। मुझे लगता है कि यह सिर्फ मेरी jQuery यूआई फ़ाइल के त्वरित मोड की आवश्यकता होगी, लेकिन मैं क्या बदलूं? धन्यवाद।jQuery यूआई डेटपिकर आज लिंक

संपादित करें: मैंने यह कोशिश की: http://dev.jqueryui.com/ticket/4045 लेकिन यह काम नहीं करता है!

+0

कोई अपडेट? एक परियोजना Asap के लिए इस कार्यक्षमता की आवश्यकता है। धन्यवाद। – Cameron

उत्तर

17

मुझे एक समाधान मिला जो यहां काम करता है: http://forum.jquery.com/topic/jquery-ui-datepicker-today-button। बस jQuery के इस स्निपेट का उपयोग (मैं सिर्फ यह में डाल मेरी datepicker init कोड के साथ):

$('button.ui-datepicker-current').live('click', function() { 
    $.datepicker._curInst.input.datepicker('setDate', new Date()).datepicker('hide'); 
}); 

समस्या सिर्फ मैं था कि ध्यान "आज" बटन पर क्लिक करने के बाद इनपुट बॉक्स में रहेगा, जिसका अर्थ है आप एक अलग तारीख का चयन करने के लिए इसे फिर से क्लिक नहीं कर सकते हैं। इस कलंक() प्रत्यय लगाना द्वारा निर्धारित किया जा सकता है:

$('button.ui-datepicker-current').live('click', function() { 
    $.datepicker._curInst.input.datepicker('setDate', new Date()).datepicker('hide').blur(); 
}); 

मैं भी "आज" बटन पर स्टाइल पसंद नहीं आया - हो सकता है कि यह सिर्फ मेरी विषय या कुछ और था, लेकिन आज बटन तरह का सलेटी रंग गया था "किए गए" बटन की तुलना में। यह निम्न सीएसएस के साथ तय किया जा सकता है (विभिन्न विषयों के लिए भिन्न हो सकते हैं, मुझे यकीन है कि नहीं कर रहा हूँ):

/* This edit gives five levels of specificity, thus making it override other styles */ 
.ui-datepicker div.ui-datepicker-buttonpane button.ui-datepicker-current { 
    font-weight: bold; 
    opacity: 1; 
    filter:Alpha(Opacity=100); 
} 
+1

आपके द्वारा दिया गया सीएसएस, केवल मेरे लिए काम करता है जब मैंने बाकी सभी (.ui-datepicker .ui-datepicker-buttonpane .ui-datepicker-current) –

+1

@Niels विशिष्टता नियमों के कारण है। मैं उचित विशिष्टता को दर्शाने के लिए ए को संपादित करूंगा। – jcolebrand

+1

नवीनतम संस्करणों 1.8.16 Jquery के साथ काम करता है। कई अन्य हैक्स/ओवरराइड दिनांकित हैं और काम नहीं करते हैं। – Doomsknight

6

मुझे पता है यह एक देर से उत्तर के लिए कुछ हद तक है, लेकिन मैं तो बस इस मुद्दे और समाधान करने के लिए भाग गया एक आकर्षण की तरह काम साबित हुआ।

हालांकि, बटन-स्टाइल समस्या jQuery UI वर्गों के कारण होती है। मैं तारीख पाठ इनपुट के क्लिक कार्रवाई के लिए निम्न कोड कहा:

$('.date').click(function() { 
    $('button.ui-datepicker-current').removeClass('ui-priority-secondary').addClass('ui-priority-primary'); 
}); 

यह गलत वर्ग निकाल देता है, और बटन के लिए सही वर्ग कहते हैं, "पूर्ण" बटन के रूप में यह एक ही बना रही है। इससे कोई फर्क नहीं पड़ता कि आप किस विषय का उपयोग कर रहे हैं। पूर्णता के लिए, यहाँ अपने पूरे कोड है:

$('.date').datepicker({ 
    dateFormat: 'yy-mm-dd', 
    showButtonPanel: true 
}).click(function() { 
    $('button.ui-datepicker-current').removeClass('ui-priority-secondary').addClass('ui-priority-primary'); 
}); 
$('button.ui-datepicker-current').live('click', function() { 
    $.datepicker._curInst.input.datepicker('setDate', new Date()).datepicker('hide').blur(); 
}); 

बस एक <input type="text" class="date" value="" /> जोड़ सकते हैं और आप के लिए तैयार हैं।

+0

यह उपलब्ध कराने के लिए धन्यवाद - यह सहायक है। हालांकि, मैंने देखा कि 'आज' बटन पर क्लिक करने के बाद, यह भूरे रंग के होने के लिए वापस चला जाता है। इसे रोकने के तरीके पर कोई विचार? –

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