始终显示 bootstrap-datepicker,而不仅仅是焦点

Posted

技术标签:

【中文标题】始终显示 bootstrap-datepicker,而不仅仅是焦点【英文标题】:Always display bootstrap-datepicker, not just on focus 【发布时间】:2013-12-25 09:54:48 【问题描述】:

我正在使用 bootstrap-datepicker 库来创建一个日期选择器,让用户选择日期。我希望始终显示选择器,而不仅仅是在用户单击输入字段或按钮时。

我该怎么做?

【问题讨论】:

【参考方案1】:

首先,确保您使用的是库的the latest version,目前为 1.2.0。 eyecon 的 original version 的文档记录很差,我不知道它是否可以满足您的要求。

有几种方法可以解决您的问题。使用您喜欢的任何一个:

    创建一个embedded/inline datepicker,然后向它添加一个changeDate 处理程序。你会想要类似于

    html
    <input id="my-input">
    <div id="my-datepicker"></div>
    

    以及以下 javascript

    $("#my-datepicker").datepicker().on('changeDate', function (e) 
        $("#my-input").text(e.format());
    );
    

    请注意,e.format 是文档的events 页面上记录的一种便捷方法,当在此处调用时,将返回一个字符串,该字符串表示根据日期选择器的format string 格式化的所选日期。

    如果您采用这种方法,您将需要使用自己的 CSS 来适当地定位日期选择器。

    这里有一个 JSFiddle 演示了这一点:http://jsfiddle.net/4wFJc/3/

    使用普通的input datepicker,在创建时显式显示,然后用无操作替换日期选择器的hide() 方法,使其永远不会被隐藏。

    不用说,这是一个丑陋的 hack,很可能在库的未来版本中停止工作。我不建议使用它。与 inline-block 方法相比,它确实具有(令人怀疑的)优势,它为您定位日期选择器并包含一个将其连接到您的 &lt;input&gt; 的箭头,但为了完整性,我将其包括在内。

    你需要 HTML 类似的东西:

    <input id="my-input">
    

    以及以下 JavaScript:

    $input = $("#my-input");
    $input.datepicker();
    $input.data('datepicker').hide = function () ;
    $input.datepicker('show');
    

    这里有一个 JSFiddle 演示了这种方法:http://jsfiddle.net/4wFJc/4/

【讨论】:

【参考方案2】:

我不使用这个日期选择器,所以我不熟悉它是如何使用的。快速而肮脏的方法是给 datepicker 下拉菜单类一个.datepicker.CLASSNAME display: block !important;。 这样下拉菜单将始终可见。

【讨论】:

至少对于 OP 正在使用的日期选择器的 the latest version,这会失败,因为默认情况下单击 &lt;input&gt; 会从 DOM 中删除日期选择器。 就像我说的......又快又脏。 脏,因为它不起作用。没那么快,因为它不起作用。【参考方案3】:

如果您使用此日期选择器:http://www.eyecon.ro/bootstrap-datepicker/

可以看到有一个方法:.datepicker('show')

当你的 $(document).ready() 时在 datepicker 对象上调用它

【讨论】:

如果我错了,请原谅我,但我很确定这会立即显示日期选择器,但仍会导致它在相关 &lt;input&gt; 字段模糊时被解散,而不是导致它永久显示(这是 OP 的目标)。当然,您发布的内容不适用于 bootstrap-datepicker 的 the latest version。

以上是关于始终显示 bootstrap-datepicker,而不仅仅是焦点的主要内容,如果未能解决你的问题,请参考以下文章

使用 bootstrap-datepicker 时如何不显示移动键盘?

滚动模式时,bootstrap-datepicker 不滚动

清除 bootstrap-datepicker 的值

bootstrap-datepicker 全局设置语言

Bootstrap-datepicker 位于页面的左上角

如何在 Django 应用程序中使用 bootstrap-datepicker?