layui select option动态显示隐藏问题

通过报表类型,动态加载公司名称 , 不同的报表类型 , 同一个公司,所带的value值是不同的 。
自定义一个属性 绑定到公司名称上面 。
问题:
layui中,hide,show是无法使用的 , form.(‘’)的时候,中=none已经添加上去 。但是渲染的时候,显示是用dl+div渲染显示的 。
不起作用,没用,hide后,前台依旧显示 。也不想通过ajax请求数据库获取加载 。

layui select option动态显示隐藏问题

文章插图
解决办法:
1 , 使用,让其不可用
可以使用,只是禁用了,还可以看到,体现效果不好,这里的是自定义属性,通过另外一个来判断哪些显示.哪些来隐藏 。
2,因为公司名称是不同类型,全部一次性加载出来了 。我们过滤一下 。动态显示匹配的内容 。
解决办法,初始化的时候偶,查询到,复制一份,选择的时候,动态添加
layui select option动态显示隐藏问题

文章插图
初始化的时候,我们复制一份 , 挂载到上面 。后面做匹配使用 。初始化的时候拷贝一份 。后面需要动态添加
function init(){let d_type =$("#data_type").find("option:selected").val();console.log(d_type);$("#company_id").removeAttr("disabled");window.companyselect= $("#company_id").clone();//删除所有的option$("#company_id").find('option[datatypeid]').remove();//查找出需要显示的option并复制var options = companyselect.find("option[datatypeid="+d_type+"]").clone();//将需要显示的option添加到select中$("#company_id").append(options);//因为option.remove()不会刷新控件,需要将新的option切换上去//这里排除了options.size() == 0的情况$("#company_id").find('option').eq(0).attr("selected",true);// $("#company_id option[datatypeid != "+d_type+"]").attr("disabled","disabled");// $("#company_id option[datatypeid = "+d_type+"]").removeAttr("disabled");// let mm =$("#company_id option[datatypeid != "+d_type+"]").html();// console.log(mm);// $("#company_id option[datatypeid = "+d_type+"]").removeClass("layui-hide");form.render('select'); //刷新select选择框渲染}$(function(){console.log('页面加载完毕');init();})
html代码;
下面展示一些 内联代码片 。
{{{$datatype}}}{{{$company}}}
【layui select option动态显示隐藏问题】form.on('select(data_type)', function(data){console.log(data.value);let data_type = data.value;d_type =$(data.elem).find("option:selected").attr("d_type");$("#company_id").removeAttr("disabled");//删除所有的option$("#company_id").find('option[datatypeid]').remove();//查找出需要显示的option并复制var options = companyselect.find("option[datatypeid="+data_type+"]").clone();//将需要显示的option添加到select中$("#company_id").append(options);//因为option.remove()不会刷新控件,需要将新的option切换上去//这里排除了options.size() == 0的情况$("#company_id").find('option').eq(0).attr("selected",true);form.render('select'); //刷新select选择框渲染})