单击时打开eternicode datepicker,而不是焦点

gio*_*gio 4 datepicker twitter-bootstrap bootstrap-datepicker

eternicode Twitter的引导日期选择一旦弹出<input>场它连接到得到关注,你可以通过按Tab键到日期选择器领域上看到官方演示页面.

相反,我希望它只在点击时打开.理想情况下,日期选择器只会在点击日历图标时弹出.

如何防止它突然出现焦点?

Mar*_*ery 9

在当前版本的库中,没有官方支持您想要做的事情.文档列出了可以实例化日期选择器的所有类型的标记以及结果行为.很明显,在<input>元素上实例化一个datepicker时,

聚焦输入(点击或标签)将显示选择器.

没有标记你可以实例化一个日期选择器,这将很容易地给你你想要的东西.也没有任何配置选项可供您选择将触发日期选择器显示的事件.

因此,要做你想做的事情,需要对库进行一些逆向工程.幸运的是,这很容易.

最简单的方法是<input>像往常一样实例化datepicker ,然后自己去除focus处理程序并用处理程序替换它click:

$('#my-input').datepicker()
              .off('focus')
              .click(function () {
                  $(this).datepicker('show');
              });
Run Code Online (Sandbox Code Playgroud)

这适用于最新版本的库,如http://jsfiddle.net/E4K56/1/所示

如果您想要触发日期选择器外观的额外元素(如日历按钮),您可以类似地将处理程序附加到它们:

$('#some-button').click(function () {
    $('#my-input').datepicker('show');
});
Run Code Online (Sandbox Code Playgroud)