2010-06-16 5 views
9

मैं अपने datepicker पसंद करते हैं, तो इस विकल्पjQuery यूआई डेटपिकर: क्या आप एक तिथि प्रारूपित कर सकते हैं और एकाधिक सेपरेटर वर्णों को अनुमति दे सकते हैं?

{dateFormat: 'mm-dd-yy'} 

पूर्व के साथ स्वरूपित हो रहे हैं: 06-16-2010

लेकिन, मैं लोगों को एक विभाजक के बजाय एक पानी का छींटा के रूप में एक स्लेश में प्रवेश करने की अनुमति चाहते हैं अगर वे चुनते हैं।

क्या डेटपिकर सेट अप करने का कोई तरीका है ताकि यह एमएम-डीडी-वाई के लिए डिफ़ॉल्ट हो लेकिन किसी को एमएम/डीडी/वाई में प्रवेश करने से नहीं रोका जाए?

मुझे पता है कि मैं {constrainInput: झूठी} सेट कर सकते हैं। हालांकि उसके बाद लोगों को पत्र :(किसी भी मदद के लिए

धन्यवाद दर्ज कर सकते हैं

उत्तर

1

datepicker altField & altFormat विकल्प है ताकि आप एक प्रारूप दिखा सकता लेकिन उपयोगकर्ता इनपुट पार्स और एक छिपे हुए पाठ बॉक्स जो आपके datepicker से जुड़ा हुआ है अद्यतन करने के लिए अन्य भेजने के लिए, लेकिन नहीं thats तुम क्या चाहते।

मैं सुझाव है कि आप datejs (http://www.datejs.com/) का उपयोग करें।

22

बिल्कुल। यदि आप constrainInput को बंद करते हैं तो आप फ़ील्ड में कुछ भी टाइप कर सकते हैं।

$("#myDateInput").datepicker({ 
    dateFormat: 'mm-dd-yy', 
    constrainInput: false 
}); 

पूर्ण डॉक्स: http://api.jqueryui.com/datepicker/#option-constrainInput

+0

+1, धन्यवाद। – Sublimemm

+0

contrainInput – reignsly

0

constraininput चाल करेंगे। मैं एक समान काम करने की कोशिश कर रहा था, और मैंने कुछ अतिरिक्त चीजों को करने के लिए परिवर्तन को बाध्य किया। आप किसी भी डिलीमीटर का उपयोग कर सकते हैं।/-। , अंतरिक्ष इत्यादि। यह किसी भी गैर अंकों को/में परिवर्तित करता है। यदि आप एम/डी या एम/डी दर्ज करते हैं/तो यह किसी भी डेलीमीटर का उपयोग कर चालू वर्ष जोड़ देगा। यदि आप टी या टी करते हैं, तो यह वर्तमान दिन वापस कर देगा। आप टी 10 या टी +10 कर सकते हैं और यह आज और 10 दिनों के साथ वापस आ जाएगा। आप टी -10 कर सकते हैं और यह 10 दिन पहले वापस आ जाएगा। आप अपने इच्छित प्रारूप का उपयोग करने के लिए 2 स्थानों को बदल सकते हैं जहां "mm-dd-y" है। ऑटो समाधान जोड़ने के अलावा इस समाधान को अंतरराष्ट्रीय प्रारूप के लिए काम करना चाहिए, लेकिन मैंने इसके लिए इसका परीक्षण नहीं किया। जानकारी के लिए

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> 
 
<script> 
 
$(function() { 
 
    $("#STARTDATE").datepicker({ 
 
     numberOfMonths: 4, 
 
     showButtonPanel: true, 
 
     constrainInput: false, 
 
\t dateFormat: "mm-dd-y" 
 
    }); 
 
\t $("#STARTDATE").change(function() { 
 
\t if ($("#STARTDATE").val().toUpperCase().indexOf("T") >= 0) { 
 
     Days = parseInt("0" + $("#STARTDATE").val().replace(/\D/g,'')); 
 
     if ($("#STARTDATE").val().indexOf('-') >= 0){Days*=-1} 
 
     var tdate = new Date(); 
 
     tdate.setDate(tdate.getDate() + Days); 
 
\t } else { 
 
     var tdate = $("#STARTDATE").val().replace(/[^0-9]+/g, '/'); 
 
\t var tvar = tdate.split("/"); 
 
\t if (tvar.length == 3){ 
 
\t  if (tvar[2] == "") {tdate += new Date().getFullYear().toString().substr(-2)} 
 
\t } 
 
\t if (tvar.length == 2){tdate += "/" + new Date().getFullYear().toString().substr(-2)} 
 
     try { 
 
    \t  tdate = $.datepicker.parseDate('mm/dd/y', tdate); 
 
\t } catch (Error) { 
 
     try { 
 
    \t  tdate = $.datepicker.parseDate('mm/dd/yy', tdate); 
 
    \t  } catch (Error) { 
 
     } 
 
     } 
 
\t } 
 
\t tdate = $.datepicker.formatDate("mm-dd-y", new Date(tdate)); 
 
\t $("#STARTDATE").val(tdate); 
 
    }); 
 
}); 
 
</script>

+0

के लिए धन्यवाद, इसके अलावा, अपनी तिथि फ़ील्ड आईडी के साथ STARTDATE को स्वैप करने की आवश्यकता है। – user999684