jQuery MiniUI

标题: 关于对话框的问题。 [打印本页]

作者: xxm_hl    时间: 2014-2-28 10:20:42     标题: 关于对话框的问题。

在mini.open中用上了showModal:true,如果再用alert()的话。对话框会在后面。照理的话,alert应该显示在最前面才对。
作者: felt    时间: 2014-2-28 10:27:08

请提供重现问题的html页面,我们本地不能重现
作者: xxm_hl    时间: 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
作者: xxm_hl    时间: 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
作者: felt    时间: 2014-2-28 11:58:37

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

论坛高级模式可以上传图片的
作者: lost    时间: 2014-2-28 12:09:59

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

[attach]4016[/attach]没有重现你说的问题。
alert显示在最外面的

作者: xxm_hl    时间: 2014-2-28 14:03:07

[attach]4017[/attach]我也不知道是怎么回事。我用Chrome打开也是一样的。需要我把页面的代码发上来吗?
作者: lost    时间: 2014-2-28 14:09:30

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

做个能运行出问题的示例页面,把包高级模式下上传。我们看下
作者: xxm_hl    时间: 2014-2-28 14:25:46

我知道是咋回事了,引用到父页面的Mini对象了。要引用弹出窗Iframe里的Mini对象才可以。
作者: lost    时间: 2014-2-28 14:40:37

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






欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2