चयन के बाद बूटस्ट्रैप खजूर छिप जाता है


97

किसी तिथि के चयन के बाद मैं कैलेंडर को कैसे छिपाऊँ? क्या कोई विशिष्ट फ़ंक्शन है जिसका मैं उपयोग कर सकता हूं? नीचे मेरा कोड:

$('#dp1').datepicker({
    format: 'mm-dd-yyyy',
    startDate: '-15d',
    autoclose: true,
    endDate: '+0d' // there's no convenient "right now" notation yet
});

किसी भी सहायता की सराहना की जाएगी।


6
यह लाइब्रेरी का डिफ़ॉल्ट व्यवहार क्यों नहीं है?
खेल

जवाबों:


156

चयन करने के बाद changedate()तिथि datepicker('hide')को छिपाने के लिए दिनांक को एक साथ बदलने पर ट्रैक का उपयोग करने के लिए आप ईवेंट का उपयोग कर सकते हैं datepicker:

$('yourpickerid').on('changeDate', function(ev){
    $(this).datepicker('hide');
});

डेमो

अपडेट करें

यह बग के साथ था autoclose: true। यह बग नवीनतम मास्टर में तय किया गया था। देखें COMMIT। से नवीनतम कोड प्राप्त करेंGitHub


7
यदि वर्तमान दृश्य विधा 'दिन' है तो मैं इसके अतिरिक्त जाँच की सिफारिश if (ev.viewMode === 'days') {$(this).datepicker('hide');}करूँगा : जैसा कि आप शायद एक महीने या एक साल का चयन करने के बाद
डेटपिकर

1
ऐसा लग रहा है कि आटोक्लोज़ डिफ़ॉल्ट रूप से गलत पर सेट है ... $(".date").datepicker({... autoclose: true, ... });अच्छा काम करता है !!!
दानी

45

यदि यह किसी को कोई मदद करता है, तो बूटस्ट्रैप डेटपिकर का संस्करण 2.0 अब स्वीकृत उत्तर के साथ काम नहीं करता है।

यहां बताया गया है कि मैंने इसे कैसे काम किया:

$('yourpickerid').datepicker({
    format: 'dd/mm/yyyy',
}).on('changeDate', function(e){
    $(this).datepicker('hide');
});

Http://bootstrap-datepicker.readthedocs.org/en/latest/events.html#changedate देखें


एक संस्करण 2 है? मैं Github पर नवीनतम रिलीज के रूप में v1.6.4 देख
garryp

मैन्युअल रूप से इवेंट को हैंडल करने के बजाय आटोक्लोज़ (@ सलीम का उत्तर या अपडेट किया गया स्वीकृत उत्तर देखें) का उपयोग करें। यदि आप तारीख बदलने पर डेटकपर छिपाते हैं, तो तारीख में टाइप करने का प्रयास अवांछित व्यवहार का कारण बन सकता है।
यह उतार चढ़ाव भरा


3

यदि आप सामान्य रूप से, कैलेंडर के व्यवहार को ओवरराइड करना चाहते हैं, तो डेटपिकर फ़ंक्शन को संपादित करने का प्रयास करें (मेरे उदाहरण में यह 82 था),

से

    this.autoclose = false;

सेवा

    this.autoclose = true;

मेरे लिए ठीक काम किया, जैसा कि मैं चाहता था कि मेरे सभी कैलेंडर उदाहरण एक ही व्यवहार करते हैं।


2
Js लाइब्रेरी में डिफ़ॉल्ट गुण बदलने की आवश्यकता नहीं है। जब आप इसे कहते हैं, तो आप इसे फ़ंक्शन की ऑब्जेक्ट की संपत्ति के रूप में पास कर सकते हैं। उदाहरण: $ ('# dob')। डेटपिकर ({प्रारूप: 'dd / mm / yyyy', ऑटोकलोज़: सच});
जीशान

3

समस्या को रोका जा सकता है, इस लिनिग द्वारा इनपुट तत्व के लिए छिपाने की घटना को अवरुद्ध करना:

var your_options = { ... };
$('.datetimepicker').datetimepicker(your_options).on('hide', function (e) {
    e.preventDefault();
    e.stopPropagation();
});


धन्यवाद दोस्त ! मैं पागल हो रहा था क्योंकि तारीख चयन के बाद इनपुट छिप गया, और इससे मेरी समस्या हल हो गई। चियर्स!
अन्तरिक्ष

3
  1. बस खोल दो bootstrap-datepicker.js
  2. खोजें: var defaults = $.fn.datepicker.defaults
  3. सेट autoclose: true

सहेजें और अपनी परियोजना को ताज़ा करें और यह करना चाहिए।


2

बूटस्ट्रैप 4 में "ऑटोहाइड: ट्रू" का उपयोग करें

$('#datepicker1').datepicker({
    autoHide: true,
    format: 'mm-yyyy',
    endDate: new Date()
});

अच्छा जवाब अंकित
शशांक सिंह

1

डेट सेलेक्ट होने पर डेटाइमपिकर बंद करें (समय के साथ डेटाइमपिकर शो डेट)

$('.datepicker').datepicker({
    autoclose: true,
    closeOnDateSelect: true
}); 

1
$('yourpickerid').datetimepicker({
           pickTime: false
}).on('changeDate', function (e) {
           $(this).datetimepicker('hide');
});

0

मुझे एक सही समाधान मिला:

$('#Date_of_Birth').datepicker().on('changeDate', function (e) {
    if(e.viewMode === 'days')
        $(this).blur();
});

0
$('.datepicker').datepicker({
    autoclose: true
}); 

इस सवाल पर एक और जवाब बिल्कुल आपके जैसा ही है। ओपी के पास यह autoclose: trueउनके उदाहरण कोड में भी है ।
93196.93


0

कम से कम संस्करण 2.2.3 में जो मैं उपयोग कर रहा हूं, आपको autoCloseइसके बजाय उपयोग करना होगा autoclose। लेटर केस मायने रखता है।


0

आप स्रोत कोड, बूटस्ट्रैप- datepicker.js बदल सकते हैं । Ne की this.hide();तरह जोड़ें

  if (this.viewMode !== 0) {
    this.date = new Date(this.viewDate);
    this.element.trigger({
        type: 'changeDate',
        date: this.date,
        viewMode: DPGlobal.modes[this.viewMode].clsName
    });
    this.hide();//here
 }

0

यदि मुझे प्रारूप लिखने पर भी घड़ी के साथ समस्या हो रही है: 'YYYY-MM-DD' ,

मेरे पास सेट करने के लिए pickTime: falseऔर परिवर्तन के बाद-> छिपाने के लिए मैंने ध्यान केंद्रित करने के लिए Ie-> शो किया था

$('#VBS_RequiredDeliveryDate').datetimepicker({
  format: 'YYYY-MM-DD',
  pickTime: false
});

$('#VBS_RequiredDeliveryDate').on('change', function(){
    $('.datepicker').hide();
});

$('#VBS_RequiredDeliveryDate').on('focus', function(){
    $('.datepicker').show();
});


0

डेटाइमपिकर के लिए इसका उपयोग करें, यह ठीक काम करता है

$('#Date').data("DateTimePicker").hide();

0

यह उल्लेख नहीं देखा है, लेकिन यह मेरे लिए यह तय है:

switchOnClick: true
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.