Ticket #4458: t4458.patch

File t4458.patch, 2.3 KB (added by nainslie, 10 years ago)

proposed fix for issue

  • tests/unit/dialog/dialog.html

     
    3535<ol id="qunit-tests">
    3636</ol>
    3737
    38 <div id="main" style="position: absolute; top: -10000px; left: -10000px;">
    39 </div>
     38<form action="/">
     39    <div id="main" style="position: absolute; top: -10000px; left: -10000px;">
     40    </div>
     41</form>
    4042
    4143</body>
    4244</html>
  • tests/unit/dialog/dialog_defaults.js

     
    2323        stack: true,
    2424        title: '',
    2525        width: 300,
    26         zIndex: 1000
     26        zIndex: 1000,
     27        dialogParent: document.body
    2728};
    2829
    2930commonWidgetTests('dialog', { defaults: dialog_defaults });
  • tests/unit/dialog/dialog_options.js

     
    315315        el.remove();
    316316});
    317317
     318test("dialogParent", function() {
     319    expect(2);
     320
     321    el = $('<div></div>').dialog({ dialogParent: null });
     322    same(dlg().parent().get(0), document.body, 'dialogParent null moves dialog outside of form');
     323    el.remove();
     324
     325    el = $('<div></div>').dialog({ dialogParent: $('form:first').get(0) });
     326    same(dlg().parent().get(0), $('form:first').get(0), 'dialogParent form:first keeps dialog inside of form');
     327    el.remove();
     328
     329});
     330
    318331})(jQuery);
  • ui/jquery.ui.dialog.js

     
    4545                stack: true,
    4646                title: '',
    4747                width: 300,
    48                 zIndex: 1000
     48                zIndex: 1000,
     49                dialogParent: null
    4950        },
    5051        _create: function() {
    5152                this.originalTitle = this.element.attr('title');
     
    5758                        titleId = $.ui.dialog.getTitleId(self.element),
    5859
    5960                        uiDialog = (self.uiDialog = $('<div></div>'))
    60                                 .appendTo(document.body)
     61                                .appendTo(options.dialogParent == null ? document.body : options.dialogParent)
    6162                                .hide()
    6263                                .addClass(uiDialogClasses + options.dialogClass)
    6364                                .css({