I have a jQueryUI autocomplete in a Bootstrap modal window. When I run it normally in the page it works fine, but when I try add it into the modal the list appears behind the modal, not in front.
I've tried variations of the following with no luck:
$("#myModal").css("z-index", "1500");
$("tags'.$fieldname.'").css("z-index", "5000");
In the modal:
data-backdrop="false"
Here is the source:
<!-- RFQ Modal -->
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" style="z-index:2000;">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body" data-backdrop="false" >
<script>
$(function ps2() {
var availableTagsps2 = [
{label:"3rd It Tech (IS# 20)", value:20},{label:"SeaBreeze Computers (IS# 14)", value:14},{label:"SeaBreeze Computers (IS# 14)", value:14},{label:"SeaBreeze Computers (IS# 14)", value:14},{label:"SeaBreeze Computers (IS# 14)", value:14},{label:"SeaBreeze Computers (IS# 14)", value:14},{label:"SeaBreeze Computers (IS# 14)", value:14}
];
$("#tagsps2").autocomplete({
source: availableTagsps2
});
$( "#tagsps2" ).autocomplete({
source: availableTagsps2,
select: function ps2(event, ui) {
var selectedObj = ui.item;
$(this).val(selectedObj.label);
$('input[name="ps2"]').val(selectedObj.value);
return false;
}
});
/* $("#myModal").css("z-index","6000");
$("#tagsps2").css("z-index","20000");*/
});
</script>
<input type="text" id="tagsps2" required AutoComplete="off" placeholder="Search..."
class="inputMed inline form-control input-med" />
<input type="hidden" name="ps2" value="" />
<div class="row" >
<div class="col-md-6">
<form role="form">
<div class="form-group" >
<!-- <input type="text" class="form-control" placeholder="Select client" required> -->
</div>
<button type="submit" class="btn btn-primary btn-lg">Submit</button>
</form>
</div>
<div class="col-md-6">
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
<a href="dashboard.php?vrfq" class="light">View Sent RFQ's</a>
</button>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
<!-- end modal -->
<a href="#" data-toggle="modal" data-target="#myModal"><div class="RightCounter">& nbsp;</div><h2>RFQ</h2></a>
When the Button is clicked, the HTML DIV is referenced using jQuery and its modal function is called along with properties data-backdrop: "static" and data-keyboard: false which disables the closing of the Bootstrap Modal Popup when clicked outside.
On Options chapter, in the page you linked, you can see the backdrop option. Passing this option with value 'static' will prevent closing the modal. As @PedroVagner pointed on comments, you also can pass {keyboard: false} to prevent closing the modal by pressing Esc .
The . modal(“hide”) method hides the modal on button click.
There are few ways to close modal in Bootstrap: click on a backdrop, close icon, or close button. You can also use JavaScript hide method. Click the button to launch the modal. Then click on the backdrop, close icon or close button to close the modal.
Using Bootstrap 3.1.1 I found it sufficient just to add the following CSS to get the autocomplete to work.
.ui-autocomplete {
z-index: 5000;
}
The ui-autocomplete class is attached to the UL which is used internally to construct the autocomplete. By giving it a crazy high z-index you effectively ensure it will be laid out above everything else in the page including the modal dialog.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With