So we pulled very deep into jQuery javascript (it was painful) to find out where this full-screen view solution was made for a multi-select list. This code tells me that there is no flag as such so that I can avoid it.
However, since it depends on the height of the list (menuHeight), the fix that worked for me was to make some css changes (reduced padding for each list item) to reduce the size of the list:
.ui-selectmenu-list li .ui-btn-inner a.ui-link-inherit { padding: .5em 15px .5em 15px; }
If you want to be sure that you will not see the dialog box, then the dirty fix would be to put some overrides in your local copy of jquery mobile code (I hate doing this, but this is the only way):
//TODO: vishalkumar : I can override here by replacing below line by if (false) if (menuHeight > screenHeight - 80 || !$.support.scrollTop) { self.menuPage.appendTo($.mobile.pageContainer).page(); self.menuPageContent = menuPage.find(".ui-content"); self.menuPageClose = menuPage.find(".ui-header a"); // prevent the parent page from being removed from the DOM, // otherwise the results of selecting a list item in the dialog // fall into a black hole self.thisPage.unbind("pagehide.remove"); //for WebOS/Opera Mini (set lastscroll using button offset) if (scrollTop == 0 && btnOffset > screenHeight) { self.thisPage.one("pagehide", function () { $(this).jqmData("lastScroll", btnOffset); }); } self.menuPage.one("pageshow", function () { focusMenuItem(); self.isOpen = true; }); self.menuType = "page"; self.menuPageContent.append(self.list); self.menuPage.find("div .ui-title").text(self.label.text()); $.mobile.changePage(self.menuPage, { transition: $.mobile.defaultDialogTransition }); }
source share