1

所以,我使用这个[Bootstrap DateTimePicker] 插件来允许用户选择日期和时间。该插件工作正常,除了一个小问题,每当用户点击或模糊日历框时,框本身和输入元素都会消失!

我查看了 css 和 js 文件,以找到可能引导我走上正确道路的东西(焦点、模糊等),但我没有任何运气。

如果有人能指出我正确的方向,我将不胜感激。谢谢!

模糊前

模糊后

这是创建元素的 HTML:

<div id="eventstartdate" class="input-append date"><input type="text" data-format="dd/MM/yyyy hh:mm:ss" /><span class="add-on">
<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span></div>

<script>
            $(document).ready(function () {

        $('#eventstartdate').datetimepicker({

            language: 'en',
            pick12HourFormat: true,
            format: 'dd/MM/yyyy hh:mm:ss',
            maskInput: true

        });

    });
    </script>
4

2 回答 2

1

我找不到正确的方法来做到这一点,所以目前我所做的只是解除 div 的隐藏,如下所示:

$('#eventstartdate').on('hide', function (e) { e.preventDefault(); });

这一直有效,直到我找到更好的解决方案:/

于 2013-08-28T22:31:23.483 回答
1

同样的事情发生在我身上,最后证明prototype.js 是罪魁祸首。原因是原型有这些称为隐藏和显示的方法,它附加到每个 dom 元素,当引导程序在其组件上触发具有相同名称的方法(如对话框、下拉菜单等)时,原型的相应方法作用于 dom 元素本身导致它隐藏。作为一种解决方法,您可以在加载原型后使用以下代码。

if (Prototype.BrowserFeatures.ElementExtensions) {
var disablePrototypeJS = function (method, pluginsToDisable) {
        var handler = function (event) {
            event.target[method] = undefined;
            setTimeout(function () {
                delete event.target[method];
            }, 0);
        };
        pluginsToDisable.each(function (plugin) { 
            jQuery(window).on(method + '.bs.' + plugin, handler);
        });
    },
    pluginsToDisable = ['collapse', 'dropdown', 'modal', 'tooltip', 'popover', 'tab','datepicker'];
disablePrototypeJS('show', pluginsToDisable);
disablePrototypeJS('hide', pluginsToDisable);  }
于 2017-06-13T12:37:05.087 回答