2012-01-09 15 views
5

पर AltField पर सेट करें, जब मैं पेज लोड होने पर डेटपिकर फ़ील्ड के मान सेट करना चाहता हूं और altField सेट करना चाहता हूं, और मैं सोच रहा था कि डेटपिकर में स्वचालित रूप से ऐसा करने के लिए कोई विकल्प है (यानी बिना कॉल करें setDate)।स्वचालित रूप से चयनित दिनांक को

मुझे पता है कि अगर मैं कुछ इस तरह करते हैं:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:+7}); 

date-div एक div जा रहा है के साथ, डिफ़ॉल्ट दिनांक स्वचालित रूप से date-input क्षेत्र के लिए, जब पेज लोड जोड़ा जाता है। लेकिन यदि मैं div के बजाय टेक्स्ट फ़ील्ड का उपयोग करता हूं तो यह मान स्वचालित रूप से सेट नहीं करता है (मुझे setDate को एक अलग पंक्ति में कॉल करना होगा)।

मैं इस बारे में सिर्फ उत्सुक हूं, मैंने इसे सेटडेट को कॉल करने के लिए पहले से ही लागू कर दिया है, लेकिन मैं जानना चाहता हूं कि इसे स्वचालित रूप से करने के लिए कुछ है या नहीं? (चूंकि कैलेंडर प्रदर्शित करने के लिए div का उपयोग करते समय यह काम करता है)।

उत्तर

-2

नहीं 100% सुरुचिपूर्ण यह पुनरावृत्ति की जरूरत के रूप में, लेकिन यह मेरे लिए काम करता है:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:$("#date-input").val()}); 
+0

आपका जवाब काम करने के लिए प्रतीत नहीं होता। हो सकता है प्रारूप –

+1

-1 में मतभेदों के कारण यह केवल तभी काम करता है जब 'altFormat' 'dateFormat' ([docs] (http://api.jqueryui.com/datepicker/#utility-formatDate) जैसा ही है)। – Stijn

+0

यदि यह अतिरिक्त स्थिति के तहत काम करता है तो आपने इसे क्यों कम किया है? मैं समझता हूं कि समाधान देने के लिए दंडित नहीं किया जा रहा है – Kodak

0

, स्थापित करने के लिए आपका सबसे अच्छा शर्त defaultDateMoment.js की तरह एक पुस्तकालय के साथ altField का मूल्य पार्स करने के लिए है, क्योंकि के लिए ब्राउज़र कार्यान्वयन पार्सिंग तिथियां अविश्वसनीय हैं। उदाहरण के लिए, यदि आपके altField अपने datepicker क्षेत्र से पहले क्षेत्र है और यह आईएसओ 8601 प्रारूप में है, तो आप ऐसा कर सकते हैं:

$(this).datepicker({ 
    altField: $(this).prev(), 
    altFormat: $.datepicker.ISO_8601, 
    defaultDate: moment($(this).prev().val()).toDate() 
}); 

कि केवल डिफ़ॉल्ट चयनित तिथि सेट हो जाएगा जब कैलेंडर खोलने। आप भी datepicker क्षेत्र को भरने के लिए चाहते हैं, आप ऊपर दिए गए कोड के साथ datepicker initialised करने के बाद ऐसा कर सकते हैं:

$(this).datepicker("setDate", moment($(this).prev().val()).toDate()); 
संबंधित मुद्दे