2013-08-28 197 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); }