Javascript 引导日期选取器在选取日期后不会自动关闭

Javascript 引导日期选取器在选取日期后不会自动关闭,javascript,jquery,twitter-bootstrap,datepicker,Javascript,Jquery,Twitter Bootstrap,Datepicker,我使用最新的引导datepicker.js。除了我从下拉列表中选择日期时,它不会自动关闭日期外,所有操作都正常。我搜索了web并尝试在javascript中使用以下函数,如下所示: $('#selectDate').datepicker({ autoclose: true }).on('changeDate', function (ev) { (ev.viewMode == 'days') ? $(this).datepicker('hide') : ''; });

我使用最新的引导datepicker.js。除了我从下拉列表中选择日期时,它不会自动关闭日期外,所有操作都正常。我搜索了web并尝试在javascript中使用以下函数,如下所示:

 $('#selectDate').datepicker({
    autoclose: true
}).on('changeDate', function (ev) {
    (ev.viewMode == 'days') ? $(this).datepicker('hide') : '';      
});
但当我使用谷歌Chrome开发工具时,我意识到ev.viewmode是未定义的。我不知道如何前进

试试这个:

$('#selectDate').datepicker()
.on('changeDate', function(ev){                 
    $('#selectDate').datepicker('hide');
});
$('#selectDate').datepicker().on('changeDate', function(ev)
{                 
     $('.datepicker').hide();
});
更新:

autoclose
在使用github上的更新版本的日期选择器时可以正常工作:

试试这个:

$('#selectDate').datepicker()
.on('changeDate', function(ev){                 
    $('#selectDate').datepicker('hide');
});
$('#selectDate').datepicker().on('changeDate', function(ev)
{                 
     $('.datepicker').hide();
});

我添加了autoclose:true,(末尾带有半逗号,可以正常工作)


若有多个文本框应用了日期选择器,那个么旧的解决方案可能会导致问题, 请试试这个

$('.datepicker').datepicker({
     format: "dd/mm/yyyy",
     autoclose: true,
}).on('changeDate', function (ev) {
     $(this).datepicker('hide');
});
注意这个,

注意:不要忘记,我们使用的是jquery的类选择器,因此 需要将datepicker类应用于文本框


以上这些对我来说都不起作用,但是覆盖datepicker默认选项就像一个符咒,而且是一行:

$.fn.datepicker.defaults.autoclose = true;
  • 只需打开bootstrap-datepicker.js
  • find:var defaults=$.fn.datepicker.defaults (就我而言,第1391行)
  • 设置自动关闭:true
  • 保存并刷新您的项目,这样就可以了。

    //10000%的工作量 转到bootstrap-datepicker.js文件

    搜索此项:

    'mousedown touchstart': $.proxy(function(e){
                        // Clicked outside the datepicker, hide it
                        if (!(
                            this.element.is(e.target) ||
                            this.element.find(e.target).length ||
                            this.picker.is(e.target) ||
                            this.picker.find(e.target).length
                        )) {
                            this.hide();  //remove this
                        }
                    }, this)
                }]
            ];
        },
    

    对我来说,这是引导数据采集器文档中的一个输入错误。 它不是“自动关闭:真”,而是“自动关闭:真”

    希望能有所帮助。

    这对我很有用

    $(".date-picker").change(function() { 
        setTimeout(function() {
            $(".date-picker").datepicker('hide'); 
            $(".date-picker").blur();
        }, 50);
    });    
    

    当使用类defaultdatepicker将鼠标悬停在div上时。此时将显示日历控件。在Mouseleave上它会消失

     $(document).on("focus", ".defaultdatepicker", function () {
    
            $(this).datepicker({
                format: 'dd/mm/yyyy',
                todayHighlight: 'TRUE',
                autoClose: true,
            });
    
            $('#datepicker').css({ "opacity": "1" });
        });
    
        $('.defaultdatepicker').on('mouseleave', function () {
            $('.datepicker').fadeOut(function () {
                $('.formattedStartDate').attr('class', 'formattedStartDate');
    
                $('#datepicker').css({ "opacity": "0" });
            });
        });
    

    这对我有用

    $(".date-picker").datepicker( {
        format: "yyyy-mm-dd",
    }).on('change', function (ev) {
        $(this).datepicker('hide');
    });
    

    试试这个。这是我的工作

    <input data-auto-close="true" type="text" class="datepicker-here"/>
    
    
    
    您可能应该告诉我您使用的插件是什么?这是->我昨天从GitHub得到的:)GitHub链接很有用autoclose是我要找的,可能会用.datepicker({autoclose:true})更新它;你有没有其他的细节可以分享,让你的答案更有用。我看到过使用此选项时的几种行为,其中最后一个选项的末尾有一个逗号,我一直认为这在最后一个选项中是不必要的。你知道为什么会这样吗?它的结尾应该总是有一个半逗号吗?在哪些情况下不适用?请正确格式化并证明您的答案。检查。添加更多详细信息以证明您的答案正确。请记住,仅包含代码的答案不被视为完整答案。当您使用类defaultdatepicker将鼠标悬停在div上时。