यदि आप किसी डेटापॉकर को किसी ऐसे input[type="text"]
तत्व पर सेट करते हैं, जो आपको लगातार स्वरूपित तारीख नहीं मिल सकता है, खासकर जब उपयोगकर्ता डेटा प्रविष्टि के लिए दिनांक प्रारूप का पालन नहीं करता है।
उदाहरण के लिए, जब आप dateFormat को dd-mm-yy
उपयोगकर्ता प्रकारों के रूप में सेट करते हैं 1-1-1
। डेटपीकर इसे Jan 01, 2001
आंतरिक रूप से रूपांतरित करेगा लेकिन val()
डेटपीकर ऑब्जेक्ट पर कॉल करने से स्ट्रिंग वापस आ जाएगी "1-1-1"
- बिल्कुल वही जो टेक्स्ट फ़ील्ड में है।
इसका मतलब है कि आपको या तो उपयोगकर्ता इनपुट को मान्य करना चाहिए यह सुनिश्चित करने के लिए कि आप जिस तारीख को दर्ज करना चाहते हैं वह प्रारूप में है या उपयोगकर्ता को तारीखों में प्रवेश करने की अनुमति नहीं है (कैलेंडर पिकर के बजाय प्राथमिकता)। फिर भी यह है कि आप एक स्ट्रिंग की तरह आप उम्मीद कर स्वरूपित देने के लिए datepicker कोड मजबूर करने के लिए संभव:
var picker = $('#datepicker');
picker.datepicker({ dateFormat: 'dd-mm-yy' });
picker.val( '1-1-1' ); // simulate user input
alert( picker.val() ); // "1-1-1"
var d = picker.datepicker( 'getDate' );
var f = picker.datepicker( 'option', 'dateFormat' );
var v = $.datepicker.formatDate( f, d );
alert( v ); // "01-01-2001"
हालाँकि इस बात से अवगत रहें कि जबकि डेटपिकर की getDate()
विधि एक तारीख को लौटाएगी , यह केवल उपयोगकर्ता इनपुट के साथ इतना कुछ कर सकता है जो तारीख प्रारूप से बिल्कुल मेल नहीं खाता है। इसका मतलब यह है कि सत्यापन की अनुपस्थिति में यह संभव है कि एक तारीख वापस मिल जाए जो उपयोगकर्ता की अपेक्षा से अलग हो। कैवियट खाली करनेवाला ।