layui-checkbox ,遇到的问题

不得不说checkbox在layui里面真不好用,遇到的问题基本都是关于checkbox的渲染和监听的问题

<script type="text/javascript">
.layui-table-cell .layui-form-checkbox[lay-skin="primary"]{
     top: 50%;
     transform: translateY(-50%);
}

</script>

在前面覆盖掉checkbox的属性就好了,上面是解决checkbox不居中问题

 

2.在使用layui.open中,调用jsp页面,弹出层中,checkbox,渲染可能出现渲染失败问题

而父页面要获得子页面对象,得通过

 var frameId = $(layero).find("iframe").attr('id'); //获得子页面的id
 var iframeWindow = layero.find('iframe')[0].contentWindow; //获得子页面的对象
 //给子页面赋值
 $(window.frames[frameId].document).find("#userId").val(data.userId);
                            $(window.frames[frameId].document).find("#userName").val(data.userName);
                            $(window.frames[frameId].document).find("#userNickname").val(data.userNickname);
                            $(window.frames[frameId].document).find("#userEmail").val(data.userEmail);
                            $(window.frames[frameId].document).find("#userAvatar").val(data.userAvatar);
                            $(window.frames[frameId].document).find("#demo1").attr("src",data.userAvatar);
                            $(window.frames[frameId].document).find("#userUrl").val(data.userUrl);
                            $(window.frames[frameId].document).find("#userStatus").val(data.userStatus);
                            $(window.frames[frameId].document).find("#userStatus").attr("checked",(data.userStatus == 1 ? 'checked' : ''));
                            $(window.frames[frameId].document).find("#userRegisterTime").val(layui.util.toDateString(data.userRegisterTime,'yyyy-MM-dd HH:mm:ss'));
                            
//重新渲染
 iframeWindow.layui.form.render();

而子页面也得使用layui.form ,即加载form.

而做完上面几步之后,

发现checkbox的值没有刷新过来,所以得使用

iframeWindow.layui.form.render();重新渲染

 

2.这里由于checkbox未选中的时候,$("#editForm").serialize()接收不到checkbox的值.

所以在后台得做处理,或者在前端做处理

 

3.在table中,使用checkbox的时候,如果想点击然后更新后台数据的时候,那么建议使用lay-event,然后在field的里面加event

然后在用局部更新的时候,要使用obj.update{ field: '值'} 更新完之后,可能会遇到checkbox没有渲染的问题,然后导致checkbox消失,这时候,在后面进行重新渲染,即 form.render('checkbox');

例子:

<script type="text/html" id="checkboxstatus">
        <input type="checkbox" name="status" value="{{d.userStatus}}" lay-event="openStatus" lay-skin="switch" lay-text="开启|关闭" onclick="editUserStatus()" {{d.userStatus == 1 ? 'checked' : ''}}>
    </script>

 {field:'userStatus',title:'状态',width:120,sort:true,templet:'#checkboxstatus',event:'openStatus'},

table.on('tool(demo)',function (obj) { 

 if(obj.event == 'openStatus'){ //监听状态
                    obj.data.userStatus = obj.data.userStatus == 1 ? 0 : 1;
                    layer.msg('用户'+(obj.data.userStatus == 1 ? '开启' : '关闭' + '~'));
                    //发送ajax
                    var formData={
                        userId: data.userId,
                        userStatus:data.userStatus
                    };
                    $.post('/admin/user/editUserStatus', formData, function (data1) {

                    });
                    //更新表格数据
                    obj.update({
                        userStatus:data.userStatus
                    });
                    form.render('checkbox');
}

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
我希望我点击注册的时候跳转到regist.html页面,用layui的方式实现,<div class="layui-container"> <div class="admin-login-background"> <div class="layui-form login-form"> <form class="layui-form" action=""> <div class="layui-form-item logo-title"> <h1>用户登录</h1> </div> <div class="layui-form-item"> <label class="layui-icon layui-icon-username" for="username"></label> <input type="text" name="email" lay-verify="required|account" placeholder="邮箱" autocomplete="off" class="layui-input" value="admin"> </div> <div class="layui-form-item"> <label class="layui-icon layui-icon-password" for="password"></label> <input type="password" name="password" lay-verify="required|password" placeholder="密码" autocomplete="off" class="layui-input" value="123456"> </div> <div class="layui-form-item"> <label class="layui-icon layui-icon-vercode" for="captcha"></label> <input type="text" name="captcha" lay-verify="required|captcha" placeholder="图形验证码" autocomplete="off" class="layui-input verification captcha" value="xszg"> <div class="captcha-img"> <img id="captchaPic" src="../images/captcha.jpg"> </div> </div> <!-- <div class="layui-form-item"> <input type="checkbox" name="rememberMe" value="true" lay-skin="primary" title="记住密码"> </div> --> <div class="layui-form-item"> <button class="layui-btn layui-btn layui-btn-normal layui-btn-fluid" lay-submit="" lay-filter="login">登 录</button> </div> <div class="layui-form-item"> <button class="layui-btn layui-btn layui-btn-normal layui-btn-fluid" lay-submit="" lay-filter="regist">注 册</button> </div>
06-12

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值