jQuery MiniUI

 找回密码
 立即注册
查看: 2552|回复: 9
打印 上一主题 下一主题

关于对话框的问题。 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-2-28 10:20:42 |只看该作者 |倒序浏览
在mini.open中用上了showModal:true,如果再用alert()的话。对话框会在后面。照理的话,alert应该显示在最前面才对。

Rank: 8Rank: 8

沙发
发表于 2014-2-28 10:27:08 |只看该作者
请提供重现问题的html页面,我们本地不能重现

Rank: 2

板凳
发表于 2014-2-28 10:36:10 |只看该作者
felt 发表于 2014-2-28 10:27
请提供重现问题的html页面,我们本地不能重现

function dialogManager(cfg) {
    var title = cfg['title'] || "信息查看、编辑",
    width = cfg['width'] || 600,
    height = cfg['height'] || 400,
    url=cfg['url'],
    viewMode=cfg['viewMode'] || "browse",
    loadUrl=cfg['loadUrl'],
    saveUrl = cfg['saveUrl'],
    formName=cfg['form'],
    root=cfg["root"] || "data";
    if (!url) throw "必须指定url参数。";
    if (!loadUrl) throw "必须指定loadUrl参数。";
    if (viewMode != "browse" && !saveUrl) throw "必须指定saveUrl参数。";
    if (!formName) throw "必须指定form的值。";
    var dlgId = null, formObj = null, miniForm = null;
    var instance = this;
    var saveAction = cfg['save'];
    dialogManager.prototype.show = function () {
        dlgId = mini.open({
            url: url,
            title: title,
            width: width,
            height: height,
            allowResize: true,
            allowDrag: true,
            showCloseButton: true,
            showMaxButton: true,
            showModal: true,
            onload: function () {
                var iframe = this.getIFrameEl();
                var xdocument = iframe.contentWindow.document
                var xWindow = iframe.contentWindow;
                try {
                    miniForm = new xWindow.mini.Form("#" + formName);
                }
                catch (e) {
                    try {
                        var fm = xdocument.getElementById(formName);
                        miniForm = new mini.Form(fm);
                    }
                    catch (e) {
                        miniForm = null;
                    }
                }
                finally {
                    var saveButton = xdocument.getElementById('saveAction');
                    if (saveButton != null && saveUrl != null) {
                        $(saveButton).removeAttr('onclick').click(instance.save);
                    }
                }
                if (!miniForm) {
                    mini.alert("无法获取到表单的引用,操作被中止。");
                    mini.hideMessageBox(dlgId);
                    return;
                } else instance.loadForm();
            }
        });
    }
    dialogManager.prototype.loadForm= function() {
        $.getJSON(loadUrl, {}, function (r, c) {
            var data = r[root];
            if(data)miniForm.setData(data);
        });
    }
    dialogManager.prototype.save = function () {
        miniForm.validate();
        if (miniForm.isValid()) {

        }
        else {
            var error = miniForm.getErrorTexts() || "";
            if (error.length > 0) {
                var ps ="由于存在已下错误:<br/>"+'<div style="color:red">'+ error.join('<br/>')+'</div>导致表单无法提交,请修复错误后再进行提交操作。';
               mini.alert(ps,"系统管理");
            }
        }
    }
}
贴图太烦了,只能把代码放上来。我用的IE11.0.9600.16518

Rank: 2

地板
发表于 2014-2-28 10:37:41 |只看该作者
felt 发表于 2014-2-28 10:27
请提供重现问题的html页面,我们本地不能重现

function dialogManager(cfg) {
    var title = cfg['title'] || "信息查看、编辑",
    width = cfg['width'] || 600,
    height = cfg['height'] || 400,
    url=cfg['url'],
    viewMode=cfg['viewMode'] || "browse",
    loadUrl=cfg['loadUrl'],
    saveUrl = cfg['saveUrl'],
    formName=cfg['form'],
    root=cfg["root"] || "data";
    if (!url) throw "必须指定url参数。";
    if (!loadUrl) throw "必须指定loadUrl参数。";
    if (viewMode != "browse" && !saveUrl) throw "必须指定saveUrl参数。";
    if (!formName) throw "必须指定form的值。";
    var dlgId = null, formObj = null, miniForm = null;
    var instance = this;
    var saveAction = cfg['save'];
    dialogManager.prototype.show = function () {
        dlgId = mini.open({
            url: url,
            title: title,
            width: width,
            height: height,
            allowResize: true,
            allowDrag: true,
            showCloseButton: true,
            showMaxButton: true,
            showModal: true,
            onload: function () {
                var iframe = this.getIFrameEl();
                var xdocument = iframe.contentWindow.document
                var xWindow = iframe.contentWindow;
                try {
                    miniForm = new xWindow.mini.Form("#" + formName);
                }
                catch (e) {
                    try {
                        var fm = xdocument.getElementById(formName);
                        miniForm = new mini.Form(fm);
                    }
                    catch (e) {
                        miniForm = null;
                    }
                }
                finally {
                    var saveButton = xdocument.getElementById('saveAction');
                    if (saveButton != null && saveUrl != null) {
                        $(saveButton).removeAttr('onclick').click(instance.save);
                    }
                }
                if (!miniForm) {
                    mini.alert("无法获取到表单的引用,操作被中止。");
                    mini.hideMessageBox(dlgId);
                    return;
                } else instance.loadForm();
            }
        });
    }
    dialogManager.prototype.loadForm= function() {
        $.getJSON(loadUrl, {}, function (r, c) {
            var data = r[root];
            if(data)miniForm.setData(data);
        });
    }
    dialogManager.prototype.save = function () {
        miniForm.validate();
        if (miniForm.isValid()) {

        }
        else {
            var error = miniForm.getErrorTexts() || "";
            if (error.length > 0) {
                var ps ="由于存在已下错误:<br/>"+'<div style="color:red">'+ error.join('<br/>')+'</div>导致表单无法提交,请修复错误后再进行提交操作。';
               mini.alert(ps,"系统管理");
            }
        }
    }
}
贴图太烦了,只能把代码放上来。我用的IE11.0.9600.16518

Rank: 8Rank: 8

5#
发表于 2014-2-28 11:58:37 |只看该作者
xxm_hl 发表于 2014-2-28 10:37
function dialogManager(cfg) {
    var title = cfg['title'] || "信息查看、编辑",
    width = cfg['w ...

论坛高级模式可以上传图片的

Rank: 8Rank: 8

6#
发表于 2014-2-28 12:09:59 |只看该作者
xxm_hl 发表于 2014-2-28 10:37
function dialogManager(cfg) {
    var title = cfg['title'] || "信息查看、编辑",
    width = cfg['w ...

没有重现你说的问题。
alert显示在最外面的
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 2

7#
发表于 2014-2-28 14:03:07 |只看该作者
我也不知道是怎么回事。我用Chrome打开也是一样的。需要我把页面的代码发上来吗?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

8#
发表于 2014-2-28 14:09:30 |只看该作者
xxm_hl 发表于 2014-2-28 14:03
我也不知道是怎么回事。我用Chrome打开也是一样的。需要我把页面的代码发上来吗? ...

做个能运行出问题的示例页面,把包高级模式下上传。我们看下

Rank: 2

9#
发表于 2014-2-28 14:25:46 |只看该作者
我知道是咋回事了,引用到父页面的Mini对象了。要引用弹出窗Iframe里的Mini对象才可以。

Rank: 8Rank: 8

10#
发表于 2014-2-28 14:40:37 |只看该作者
xxm_hl 发表于 2014-2-28 14:25
我知道是咋回事了,引用到父页面的Mini对象了。要引用弹出窗Iframe里的Mini对象才可以。 ...

Archiver|普加软件

GMT+8, 2024-11-15 12:07 , Processed in 1.019014 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部