2015-08-04 5 views
0

У меня есть мода Bootstrap, которая показывает заполнение некоторых данных, если данные неверны, на самом деле я показываю предупреждение, и оно отображается сверху.Диалоговое окно JQuery UI поверх Bootstrap

Теперь у меня есть новое требование, создайте настраиваемые диалоговые окна предупреждений. В других частях формы нет проблем, но когда у меня есть мода Bootstrap, если я показываю модальный обычным образом, он появляется в нижней части модального модуля Bootstrap (example in this fiddle).

Я смотрел другие вопросы, как this и this, и я попытался с z-index (example in this fiddle) и диалоговыми шоу в верхней части, но я не могу щелкнуть в любом месте

$(".ui-dialog").css({ 'z-index' : 1000 });  
$("#myModal").css({ 'z-index' : 0 }); 

Также я попытался отключить модально и включить диалог без успеха.

this answer Правильно, и я не могу добиться этого без дополнительных плагинов?

+0

Не уверен, но это то, что вы ищете? [** Fiddle **] (http://jsfiddle.net/x7kzg4tq/) – DavidDomain

+0

точно! это то что мне нужно! но я не могу прикоснуться к шаблонам 'css', только модификация' js'/'jquery' ... –

+0

Я отправил ответ, используя jquery для изменения' z-index'. – DavidDomain

ответ

2

z-index В умолчанию начальной загрузки модального окна, как это определено в variables.less файл находится в 1050.

@ zindex-modal: 1050;

Так что, если вы хотите разместить свой диалог JQuery-UI выше, что вы, по крайней мере, добавить значение z-index, которое больше, чем один из модального окна. Или измените модальное окно z-index на что-то ниже, но я бы этого не сделал.

$("#btnalert").click(
 
    function action() { 
 
    alert("this is an alert on top"); 
 
    } 
 
); 
 

 
$("#btndialog").click(
 
    function action() { 
 
    $("#dialog").html("dialog on the back"); 
 
    $("#dialog").dialog(); 
 
    $(".ui-dialog").css({ 
 
     zIndex: '1060', 
 
     top: '100px' 
 
    }); 
 
    prepareDialog(); 
 
    
 
    } 
 
); 
 

 
function prepareDialog() { 
 
    $("html, body").animate({ scrollTop: 0 }, "slow"); 
 
    $(".ui-dialog-titlebar").css({ background: '#F7985D' }); 
 
    $(".ui-dialog .ui-dialog-content").css({ 'text-align': 'center' }); 
 
}
.ui-dialog { 
 
    /*z-index: 1060 !important;*/ 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> 
 
<link href="https://code.jquery.com/ui/1.11.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script> 
 

 

 

 
<!-- Latest compiled JavaScript --> 
 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 

 

 
<!-- Trigger the modal with a button --> 
 
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button> 
 

 
<!-- Modal --> 
 
<div id="myModal" class="modal fade" role="dialog"> 
 
    <div class="modal-dialog"> 
 

 
    <!-- Modal content--> 
 
    <div class="modal-content"> 
 
     <div class="modal-header"> 
 
     <button type="button" class="close" data-dismiss="modal">&times;</button> 
 
     <h4 class="modal-title">Modal Header</h4> 
 
     </div> 
 
     <div class="modal-body"> 
 
     <p>Some text in the modal.</p> 
 
     </div> 
 
     <div class="modal-footer"> 
 
     <button class="btn btn-default" id="btnalert" >ALERT</button> 
 
     <button class="btn btn-default" id="btndialog" >DIALOG</button> 
 
     <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
 
     </div> 
 
    </div> 
 

 
    </div> 
 
</div> 
 

 
<div id="dialog" hidden></div>

+0

Практически, вы знаете, как сделать положение диалога относительно модального? если вы запускаете фрагмент в полноэкранном режиме, он центрируется на экране, но у меня длинная форма, поэтому мне нужно, чтобы позиция была относительно модальной ... что-то вроде предупреждения, может быть, 100px вниз ... –

+1

Сделано edit на почту. Добавлена ​​позиция 'top' css в диалог. – DavidDomain

+0

На самом деле, это не относится к модальному, это 100px верхнее абсолютное, но достаточно справедливое ... исходный вопрос полностью ответил;) –

-2

попробовать это на вашей скрипке:

<button class="btn btn-default" data-dismiss="modal" id="btndialog" >DIALOG</button> 
+0

никак, я не могу отказаться от модального, если я нахожу unvalid данные –

+1

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code- основанные на ответах) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. –

+0

@ Kyll: ok. спасибо за ваше предложение. – bloC

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