欢迎您访问我的笔记本站旨在于记录一些平时工作中遇到的一些问题和解决方法,方便查阅,部分内容来源于网络,如有侵权请联系我删除
  • 微信微信
您现在的位置是:首页 > 其他文章

Layui 打印表单复选框始终显示√的问题-[原创]

日期:2021-05-17 15:04:18 作者:tanyi 来源:我的笔记 浏览:1275 次
在使用Layui制作表单需要打印时,发现无论复选框是否选择,在打印预览时√始终会显示,因为Layui框架表单的复选框√是单独写的而非原生input复选框,所以需要特殊处理一下

未处理之前原表单内容是这样

image.png

打印预览是这样

image.png

选择与没有选择的区别只是边框粗了一些,这显然不是很明显,也不能满足日常使用者的需求。

最开始简单的想通过css改变颜色来处理,结果发现该元素的字体颜色本身就是白色,而打印预览却变成了灰色的样子

image.png

没办法,只能通过曲线救国的方法。大体思路是首先将所有的复选框的√元素取消,然后通过监听复选框来动态添加和删除√元素。

css部分:

.layui-icon-ok::before {
    content: '';//将√去掉
}
.check_now::before{content: '✔';!important;}//通过样式优先级添加√

js部分:

form.on('checkbox(filter_check)', function(data){
    console.log(data.elem); //得到checkbox原始DOM对象
    console.log(data.othis); //得到美化后的DOM对象
    if(data.elem.checked){
        $(data.othis).find('.layui-icon-ok').addClass('check_now');//这里需要使用美化后的DOM对象,因为很多元素是美化后才生成
    }else {
        $(data.othis).find('.layui-icon-ok').removeClass('check_now');
    }
});

最终效果,原始表单:

image.png

打印预览:

image.png

原创文章转载时请注明原始出处,作者等相关信息

提交评论
评论列表