今天再用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>
我们只需要在我们本身的代码上,加上上述代码,就可以实现。