layui动态追加select元素不显示

今天用layui写前端页面时候用到了通过jqurey中的befor追加select元素

一开始写法:

<div class="layui-form-item">
    <label class="layui-form-label">执行人员</label>
    <div  style="width: 150px;display: inline-block;" >
      <select name="city">
        <option value="">选择部门</option>
        <option value="0">北京</option>
      </select>
       </div>---
        <div style="width: 150px;display: inline-block;">
      <select name="city" >
        <option value="">选择人员</option>
        <option value="0">张三</option>
      </select>
     </div>    
     
     <button type="button" class="layui-btn" id="addpeop">
          <i class="layui-icon">&#xe608;</i>
    </button>
</div> 
<script>
$(function(){
    $("#addpeop").click(function(){
        var peop=$("#addpeod");
        var t=$(['<label class="layui-form-label"></label>',
                   '<div  style="width: 150px;display: inline-block;" >',
                   '<select name="city">',
                   '<option value="">选择部门</option>',
                      '<option value="0">北京</option>',
                     '</select>',
                      '</div>---',
                   '<div style="width: 150px;display: inline-block;">',
                    ' <select name="city" >',
                  ' <option value="">选择人员</option>',
                   '<option value="0">张三</option>',
                   '</select>',
                '</div>',
                '<button type="button" class="layui-btn layui-btn-xs layui-btn-danger" id="del">删除</button>'].join(''));
        t.find('#del').on('click', function(){
            t1.remove();
            });
        peop.append(t);
           
    })
})
</script>
 
页面内容:

翻阅layui官方API发现

Layui会对select、checkbox、radio等原始元素隐藏,从而进行美化修饰处理。但这需要依赖于form组件,所以你必须加载 form,并且执行一个实例。值得注意的是:导航的Hover效果、Tab选项卡等同理(它们需依赖 element 模块)

所以当新添加这些元素以后需要对页面表单元素重新渲染一下

layui.use('form', function(){
  var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
  
  //……
  
  //但是,如果你的HTML是动态生成的,自动渲染就会失效
  //因此你需要在相应的地方,执行下述方法来手动渲染,跟这类似的还有 element.init();
  form.render();
});
在script最后加上上面代码

问题解决了

我用的layui 2.x版本其他版本可能会有差异

原文:https://blog.csdn.net/light_666/article/details/80205041 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 JavaScript 来动态追加 layuiselect 组件。下面是一个示例代码: ```html <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="https://cdn.bootcdn.net/ajax/libs/layui/2.6.8/css/layui.css"> </head> <body> <div class="layui-form-item"> <div class="layui-input-inline"> <select id="mySelect" lay-verify="required"> <option value=""></option> <option value="1">选项1</option> <option value="2">选项2</option> </select> </div> <div class="layui-input-inline"> <button class="layui-btn" onclick="addOption()">追加选项</button> </div> </div> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/layui/2.6.8/layui.js"></script> <script> layui.use(['form'], function() { var form = layui.form; form.render(); }); function addOption() { var optionValue = prompt("请输入选项值:"); var optionText = prompt("请输入选项显示文本:"); if (optionValue && optionText) { var $select = $('#mySelect'); $select.append('<option value="' + optionValue + '">' + optionText + '</option>'); layui.form.render('select'); } } </script> </body> </html> ``` 在上述代码中,我们首先引入了 layui 和 jQuery 的依赖。然后,我们创建了一个包含 select 组件和一个按钮的表单项。按钮的 onclick 事件调用了 `addOption` 函数,用于追加选项。 在 `addOption` 函数中,我们使用 jQuery 获取到 select 元素,并使用 `append` 方法在末尾追加一个新的 option 元素。随后,通过调用 `layui.form.render('select')` 方法,使 layui 重新渲染 select 组件,以显示追加的选项。 请注意,这只是一个简单示例,实际应用中可能需要对用户输入进行验证和处理错误情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值