sugaral

sugaral

90飞吻 2018-12-7 加入 来自7-2

(赢一把就睡觉,诶?天这么亮了!)

sugaral 最近的回答

  • 3天前layer弹窗页面框被layui的表单验证消息框影响了中回答:

    @LJDragon 问题解决了,我在引入layui.all.js后,又设置了一个叫"layer"的全局变量引入了layer.js,造成变量名冲突,也就是全局变量污染。删掉layer这个全局变量后一切都解决了
  • 3天前layui的校验可以返回成功或者失败的标识吗?中回答:

    @Zlheb 问题解决了,导致这种情况是因为我引入了layui.all.js,又设置了一个叫"layer"的全局变量来引入了layer.js。也就是全局变量污染了
  • 4天前layui的校验可以返回成功或者失败的标识吗?中回答:

    @Zlheb layui一个页面只允许触发一个弹窗吗,之前我用type=1的页面框来弹窗,把弹窗页面和主页面写在一个页面里面,弹窗会代替校验弹出的消息框消失。我换了下不同版本layui,去掉其他大部分css都没有解决,然后这个问题鸽了。
    后来我用iframe框来弹窗,校验出来的消息框不再顶走弹窗了,但是当我参考你说的用parent.layer.msg时,我的iframe弹窗就代替msg消失了。然后我发现只要一个页面触发2个弹窗就会有这种问题:弹窗1先出现,当弹窗2出现时,弹窗2的所有动作都由弹窗1代替执行了,而且由于触发弹窗2时有弹窗1的存在,弹窗2并不会出现在中间。
    我找了很久发现这个问题只有我这里才发生,如果layui没有这种问题就应该是我系统配置有问题了。不过还是想在这里确认一下。
  • 4天前layui的校验可以返回成功或者失败的标识吗?中回答:

    @Zlheb 如果是父页面消息提示的话,后台发回的msg消息要从子页面传给父页面,还有就是parent.layer.close关闭窗体后,end回调不执行,同步不了怎么办。
  • 4天前layui的校验可以返回成功或者失败的标识吗?中回答:

    @Zlheb 我现在是父页面打开layer弹窗,弹窗中的表单子页面留给子页面校验。校验失败则提示,校验成功则提交数据关闭窗体。
    但是校验是否成功,父窗体拿不到标识,所以我只能选择在子页面的form.on("submit(*)",function(..))中向后台传数据、然后关闭弹窗。现在勉强能用。就是发现在弹窗中的子页面调用parent.layer.close(index)无法触发end回调,而且子页面中的弹出的msg消息框会随着子页面消失而消失。因为我想提交成功后直接关掉弹窗,留下msg,这样就不需要写禁用确认按钮之类的语句了。

    下面是父页面弹窗js
    $(document).on("click","#doAdd",function(){
    var url="/back/base/addRoleWindow";
    var index=layer.open({
    type:2,
    title:"新增角色",
    content:url,
    btn:["取消","保存"],
    area:"500px",
    shade:[0.8, '#002233'],
    skin:"layui-layer-lan",
    btn2:function(index,layero){
    var submitBtn = layer.getChildFrame("#submit", index);
    submitBtn.trigger("click");
    return false;
    },
    end:function(){
    $("#roleList").bootstrapTable("refresh");
    alert("销毁");
    }
    });
    });
    下面是子页面弹窗js
    layui.form.on("submit(formDemo)",function(data){
    var index = parent.layer.getFrameIndex(window.name);
    var role={
    name:data.field.role_name,
    descn:data.field.role_descn
    }
    try{
    backManagerService.roleAdd(role);//RPC方法传数据到后台
    layer.msg("添加成功",{time:2000},function(){
    parent.layer.close(index);
    });
    }catch(e){
    layer.msg("添加失败<br/>原因:"+e,{time:3000},function(){
    parent.layer.close(index);
    });
    }
    return false;
    });
    下面是子页面
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <title>角色管理</title>

    <!-- 插件css -->
    <link rel="stylesheet" type="text/css" href="${ctx}/static-res/sea-modules/1.0/layui/css/layui.css"/>

    #include("/common/common-js.jetx")

    <script type="text/javascript">
    seajs.use("${ctx}/style/base/role/js/form_UI.js");
    </script>

    <body>
    <form id="addRole" class="layui-form layui-form-pane" style="margin:15px;">
    <div class="layui-form-item ">
    <label class="layui-form-label">角色名称:</label>
    <div class="layui-input-block">
    <input type="text" id="role_name" name="role_name" lay-verType="tips" required lay-verify="required" placeholder="请输入角色名称" class="layui-input">
    </div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">描述:</label>
    <div class="layui-input-block">
    <input type="text" id="role_descn" name="role_descn" placeholder="请输入描述" class="layui-input">
    </div>
    </div>

    <div class="layui-form-item layui-hide" >
    <div class="layui-input-block" style="text-align:right;">
    <button id="submit" class="layui-btn layui-btn layui-btn-sm" lay-submit lay-filter="formDemo" >提交</button>
    </div>
    </div>

    </form>
    </body>
    </html>
  • 4天前layui的校验可以返回成功或者失败的标识吗?中回答:

    @Zlheb 我想问下,我在父页面中打开子页面,那关闭弹窗是在父页面操作还是子页面操作
  • 7天前layer弹窗页面框被layui的表单验证消息框影响了中回答:

    @LJDragon
    还有一件事,我通过trigger("click")来触发layui自带的校验,但是他好像没有返回成功还是失败标志。如果在form.on(submit(*),function(){...})里设置标识我又怕他校验是异步的。总之如果既能用他自带校验,也能返回标识就好了。
  • 7天前layer弹窗页面框被layui的表单验证消息框影响了中回答:

    @sugaral 上面说错了,那2个图是页面弹出层,还有应该是iframe
  • 7天前layer弹窗页面框被layui的表单验证消息框影响了中回答:

    @LJDragon 把页面精简了一下,还是不行,而选用ifream弹出层就没这个问题。

    下面这个是精简后依旧出问题的页面弹出层。
    父页面:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <title>角色管理</title>

    #include("/common/common-js.jetx")
    #include("/base/role/form_UI.jetx")

    <script type="text/javascript">
    seajs.use("${ctx}/style/base/role/js/layuiTest.js");
    </script>

    <body>
    <button type="button" id="tc">弹窗</button>
    </body>
    </html>
    父页面JS
    define(function (require, exports, module) {

    var $ = require("jquery2");
    var layer = require("layer");
    require("layuiAll");

    //按钮
    $(document).on("click","#tc",function(){
    var content=$("#addRole");
    //弹窗
    var index=layer.open({
    type:1,
    title:"弹窗",
    content:content,
    btn:["取消","确认"],
    //确认回调
    btn2:function(index){
    var submitBtn=$("#submit");
    submitBtn.trigger("click");
    return false;
    },
    });
    });
    });
    子页面:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <title>角色管理</title>

    <!-- 插件css -->
    <link rel="stylesheet" type="text/css" href="${ctx}/static-res/sea-modules/1.0/layui/css/layui.css"/>

    #include("/common/common-js.jetx")

    <script type="text/javascript">
    seajs.use("${ctx}/style/base/role/js/form_UI.js");
    </script>

    <body>
    <form id="addRole" class="layui-form layui-form-pane" style="margin:15px;" >
    <div class="layui-form-item ">
    <label class="layui-form-label">角色名称:</label>
    <div class="layui-input-block">
    <input type="text" id="role_name" name="role_name" lay-verType="tips" required lay-verify="required" placeholder="请输入角色名称" class="layui-input">
    </div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">描述:</label>
    <div class="layui-input-block">
    <input type="text" id="role_descn" name="role_descn" placeholder="请输入描述" class="layui-input">
    </div>
    </div>

    <div class="layui-form-item layui-hide" >
    <div class="layui-input-block" style="text-align:right;">
    <button id="submit" class="layui-btn layui-btn layui-btn-sm" lay-submit lay-filter="formDemo" >提交</button>
    </div>
    </div>

    </form>
    </body>
    </html>
    子页面JS
    define(function (require, exports, module) {

    var $ = require("jquery2");
    var layer = require("layer");
    require("layuiAll");


    layui.form.on("submit(formDemo)",function(data){
    console.log(data.field.role_name);
    });

    });
    这个是ifream弹出层


  • 2018-12-7 17:25:6layer弹窗页面框被layui的表单验证消息框影响了中回答:

    @LJDragon 试了下,和样式没关系


    layui版本换了一下也没解决,难道是系统里有其他东西和layrui冲突了?