2013-08-28 135 views
1

因此,我使用this [Bootstrap DateTimePicker]插件允许用户选择日期和时间。插件工作正常,除了一个小问题,每当用户点击或模糊日历框,框本身和输入元素消失!DateTimePicker Bootstrap隐藏模糊输入字段

我已经查看了CSS和js文件,以找到可能导致我在正确路径(焦点,模糊等)的东西,但我没有任何运气。

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

Before blurring off

After blur

这是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> 
+1

你的代码是什么样的?您提供的链接上的示例不会消失,因此必须是代码中的某些内容。 – putvande

+0

请发布您的html和js代码,或者更好地创建一个小提琴 – Farhan

+0

我会的。对于那个很抱歉。而jfiddle的问题是我使用的是MVC,并且除了View(一个Html帮助器)以外的其他地方创建的html,它必须是与另一个文件(插件或javascript)冲突的东西,因为每当我隔离这个特定插件,它工作得很好。 – Jose

回答

1

我无法找到正确的方式来做到这一点,这样的时刻是我所做的就是解除绑定像这样隐藏div:

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

这个工作,直到我找到更好的解决方案:/

0

同样的事情发生在我身上,最后事实证明,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); }