If you see your JQuery-ui dialog being hidden by other elements in the webpage, then you need to increase its z-index. I recently ran into the case where the JQXgrid widget was using very high z-indeces outside of my control.
Here’s the code:
ZIndexer = function () {
var self = this;
this.Elements = [];
this.Add = function (JQuerySelector) {
var DomElementArray = $(JQuerySelector)
$.each(DomElementArray, function (i, element) { self.Elements.push(element) })
return this;
}
this.GetNextFreeZIndex = function () {
var zIndeces = $(this.Elements).sort(function descending(a, b) {
var bZIndex = $(b).zIndex()
var aZIndex = $(a).zIndex()
return bZIndex - aZIndex
})
return $(zIndeces[0]).zIndex() + 1;
}
}
//My grid is in a div with id jqxgrid. All of its child elements need
//to be considered when figuring out the next available ZIndex
var foo = new ZIndexer().Add("#jqxgrid *");
//Set the z-index of the jquery-ui dialog and its overlay to the highest available
$('.ui-widget-overlay').css('z-index',foo.GetNextFreeZIndex());
$('.ui-dialog').css('z-index',foo.GetNextFreeZIndex() + 1);