今天再用Layui写界面时,发现自己的select下拉框没有显示
<from class="layui-form" action=""> <div class="layui-input-inline"> <label class="layui-form-label">姓名:</label> <div class="layui-input-block"> <input type="text" name="title" required lay-verify="required" placeholder="姓名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-input-inline"> <label class="layui-form-label">地址:</label> <div class="layui-input-block"> <select name="city" lay-verify=""> <option value="">请选择一个城市</option> <option value="010">北京</option> <option value="021">上海</option> <option value="0571">杭州</option> </select> </div> </div> <div class="layui-input-inline"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </from>
自己明明已经写了,为什么不显示的?
查了查资料发现:
Layui会对select、checkbox、radio等原始元素隐藏,从而进行美化修饰处理。但这需要依赖于form组件,所以你必须加载 form,并且执行一个实例。值得注意的是:导航的Hover效果、Tab选项卡等同理(它们需依赖 element 模块)
所以当新添加这些元素以后需要对页面表单元素重新渲染一下
<script> layui.use('form', function() { var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功 //…… //但是,如果你的HTML是动态生成的,自动渲染就会失效 //因此你需要在相应的地方,执行下述方法来手动渲染,跟这类似的还有 element.init(); form.render(); }); </script>
我们只需要在我们本身的代码上,加上上述代码,就可以实现。