最近在使用layui前端框架,在使用单选按钮、下拉菜单select、checkbox等控件的时候 往往遇到一些初始化的东西。
有时候会发现,自己动态append进去的代码要不就是没有显示,要不就是初始化默认选中出问题。
以上这些情况进行了测试:
第一种情况:动态append()html代码后没有显示空间的解决方案:
添加
layui.form.render();//重新渲染 可以解决多种没有显示的情况
第二种情况:动态设置默认选中状态没有效果解决方案:
细分为两种情况:(1)在html页面代码下(没有在layer初始化框架中,即没有在layui.use([], function(){ }) 中进行初始化)
以初始化checkbox默认选中为例:
$('.xxx').attr("checked", true); //注意这里使用的是attr()
layui.form.render(); //重新渲染显示效果
//注意这里使用的是attr()
layui.form.render(); //重新渲染显示效果
(2)在layui.use(); 初始化中初始化一般这种情况会出现在调用api接口错误之后使用不然checkbox改变状态
layui.use(['form','layer'],function(){
var form = layui.form
layer = parent.layer === undefined ? layui.layer : top.layer,
$ = layui.jquery;
if ($('.xxxx').attr("checked") === "checked") { //判断是否选中
$('.xxxx').prop("checked", true); //设置选中 注意这里使用的是prop(), 这里要是使用了attr()是无效的
} else {
$('.xxxx').prop("checked", false);
}
form.render(); //重新渲染
});
$ = layui.jquery;
if ($('.xxxx').attr("checked") === "checked") { //判断是否选中
$('.xxxx').prop("checked", true); //设置选中 注意这里使用的是prop(), 这里要是使用了attr()是无效的
} else {
$('.xxxx').prop("checked", false);
}
form.render(); //重新渲染
});
最后打个小小的广告 个人闲时搞了个壁纸 公众号
敲代码累了 有个好看点的壁纸 还是可以缓解一下!!!!!!!!!!
有兴趣的话可以关注一下下