2012-10-26 4 views
3

Я использую bootstrap, и я хочу создать форму в popover. Я сделал это, но я не могу ввести текстовое поле формы. Кто-нибудь знает, почему?форму в popover не работает

* обновление Это внутри модальное. Вне модального он работает, но внутри него нет ...

* update2 Практически там я думаю. Когда я открываю modal и popover, я не могу вводить текстовое поле. После того, как я закрываю modal, popover все еще открыт, а затем я могу ввести текстовое поле. Таким образом, между текстовым полем и всплывающим окном должен быть некоторый z-индекс. Реальный неаккуратно, но я попытался input{z-index:9999;}, но это не сработало

<a href="#" class="add_nr" data-nummer-id="nr_1" rel="popover"> 


<div id="add_number" class="popover"> 
    <div class="addnr" id="nr_1"> 
     <form class="form-inline"> 
      <div class="controls"> 
       <input type="text" placeholder="Artist"> 
      </div> 
      <div class="controls"> 
       <input type="text" placeholder="Number"> 
      </div> 
      <a href="#">cancel</a> 
      <button type="submit" class="btn">add number</button> 
     </form> 
    </div> 
</div> 




$(function(){ 
     $('.add_nr').on('click', function(event){ 
      var $this = $(this); 
      event.preventDefault(); 
      $('.add_nr').not($this).popover('hide'); 
      $this.popover('show'); 

     }).popover({ 
      trigger: 'manual', 
      placement: 'bottom', 
      content: function(e) { 
       var $this = $(this), 
       nr_id = $this.data('nummer-id'); 
       return $('#' + nr_id + '.addnr').html(); 
      } 
     }) 
    }); 
+1

Я бы угадал проблему с вашим CSS, где какой-то элемент перекрывается и, следовательно, блокирует ввод. В вашем вопросе недостаточно информации, чтобы рассказать, вам нужно предоставить больше. –

+0

укажите код вашего класса popover, addnr и form-inline. . В стилях, которые вы добавили в свой класс css, должен быть конфликт. –

+1

О, я забыл упомянуть, что это в Модале. Если я ставлю его вне модального, он будет работать, но внутри он не будет. – Chanckjh

ответ

0

Когда модальный запускается она сохраняет фокус на себя, предотвращая элементы в форме от получения фокуса. Простым решением было бы отключить слушателя при запуске модального запуска:

$('body').on('shown','.modal', function() { 
    $(document).off('focusin.modal') 
}); 
+0

Блестящий! Оно работает. Как вы это поняли. – Chanckjh

+0

Я проверил все CSS и не смог найти взаимодействия между формами, вводами и модальными классами, поэтому я решил, что он должен поступать из JS. Быстрый поиск ** ** на ** ** в ** bootstrap-modal.js ** заставил слушателя 'focusin.modal', и конечно же, что это было. – merv

Смежные вопросы