解决Layui动态添加表单后Select无法渲染的问题
作者:小满时间:2026-10-23 11:12:50浏览:291
本文解决Layui动态添加表单内容后,select等组件保持原始HTML样式的问题。核心在于将form.render()调用置于动态追加代码执行之后,并确保select标签位于class为layui-form的容器内,以触发自动修饰。
动态添加后渲染时机与位置
当通过动态方式向表单追加内容时,select等组件往往显示为原始HTML标签样式。虽然常见建议是将form.render()放入页面script中,但实验表明这种做法无效。正确的做法是将form.render()调用放置在动态添加元素的代码逻辑之后,即确保在追加DOM节点的操作完成后立即执行渲染刷新。
容器class要求
另一个关键点是结构要求,必须确保包含select等标签的元素被包裹在class属性为layui-form的父级标签内部,否则Layui无法正确识别并应用其样式修饰。
$("#father").append("<form class=\"layui-form\" lay-filter='test' > " +
"<div class=\"layui-form-item\" >\n" +
" <label class=\"layui-form-label\">学院班级:</label>\n" +
" <div class=\"layui-input-inline\" >\n" +
" <select name=\"ucollege\">\n" +
" <option value=\"\">请选择专业</option>\n" +
" <option value=\"浙江\" selected=\"\">浙江省</option>\n" +
" <option value=\"你的工号\">江西省</option>\n" +
" <option value=\"你最喜欢的老师\">福建省</option>\n" +
" </select>\n" +
" </div>\n" +
" <div class=\"layui-input-inline\">\n" +
" <select name=\"ugrade\" >\n" +
" <option value=\"\">请选择班级</option>\n" +
" <option value=\"杭州\">杭州</option>\n" +
" <option value=\"宁波\" disabled=\"\">宁波</option>\n" +
" <option value=\"温州\">温州</option>\n" +
" <option value=\"温州\">台州</option>\n" +
" <option value=\"温州\">绍兴</option>\n" +
" </select>\n" +
" </div>\n" +
"</div>" +
" <div class=\"layui-form-item\">\n" +
" <label class=\"layui-form-label\">性别:</label>\n" +
" <div class=\"layui-input-block\">\n" +
" <input type=\"radio\" name=\"usex\" value=\"男\" title=\"男\" checked=\"\">\n" +
" <input type=\"radio\" name=\"usex\" value=\"女\" title=\"女\">\n" +
" </div>\n" +
" </div>" +
"</form>");
//添加按钮
$("#father").append("<div style=\"margin-left: 120px;\">\n" +
" <button type=\"button\" class=\"layui-btn layui-btn-primary layui-btn-radius\" onclick=\"addUserFinish()\">添 加</button>\n" +
" <button type=\"button\" class=\"layui-btn layui-btn-primary layui-btn-radius\">重 置</button>\n" +
" </div>");
layui.use('form', function(){
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
form.render();
form.render('select' ,'test'); //刷新select选择框渲染
});
}
以上即为解决Layui动态表单中select等组件无法渲染问题的完整方案,供参考使用。
作者最新文章
JS空字符串、null和undefined转数字的结果是什么
2026-11-05 14:49:16
CodePen、JSFiddle与StackBlitz:主流JS在线编辑器对比
2026-11-05 13:38:29
JS怎么将时间戳转换为“刚刚”、“几分钟前”等相对时间
2026-11-05 12:55:14
JavaScript将儒略日逆向还原为公历日期时间的实现方法
2026-11-04 23:51:05
能在我的世界手机版直接修改JS代码吗
2026-11-04 19:02:53
