lay-text属性必须显式声明且用半角竖线分隔开启/关闭文案,否则回退ON/OFF;动态修改需调用form.render();表格中须在templet函数内动态拼接,避免全角字符。
lay-text 属性必须显式声明才能覆盖默认 ON/OFF
layui 的 switch 默认显示 “on | off”,不写 lay-text 就永远是这个文案,哪怕你改了 value 或后台传参也没用。它只认这个属性,且必须用竖线 | 分隔两个状态文本,顺序固定:左边是开启时显示的,右边是关闭时显示的。
常见错误是写成 lay-text="启用/关闭"(用了斜杠)、lay-text="启用,关闭"(用了逗号),或者漏掉其中一端(如只写 lay-text="启用"),这些都会导致文案回退到默认值。
-
lay-text="开启|关闭"✅ 正确 -
lay-text="是|否"✅ 正确 -
lay-text="启用状态|禁用状态"✅ 正确(支持中文长文本) -
lay-text="启用"❌ 回退为 ON/OFF -
lay-text="启用 / 关闭"❌ 空格+斜杠 → 不识别 → ON/OFF
动态修改 lay-text 需要重新渲染 form
如果你在页面加载后想通过 JS 改变已存在 switch 的文字(比如根据用户角色切换“审核通过|驳回”或“上线|下线”),不能只改 setAttribute,因为 Layui 渲染后会忽略 DOM 属性变更。必须配合 form.render() 才生效。
示例:把某个开关从“开启|关闭”改为“发布|撤回”
document.getElementById('statusSwitch').setAttribute('lay-text', '发布|撤回');
layui.form.render('checkbox'); // 只刷新 checkbox 类型,推荐
// 或 layui.form.render(); // 全局刷新(开销略大)
注意:form.render() 必须在 layui.use(['form']) 回调内执行,否则 layui.form 未定义。
表格(table)中 templet 里的 switch 文案要随数据变化
在 table.render 的 templet 函数里写 switch,lay-text 不能写死——比如某列状态为 1/0,但不同业务线要求文案不同(“有效|无效” vs “激活|冻结”),就得根据当前行数据动态拼接。
智能模型自动切换 V5.0.2 - 多模态感知,自动识别图片/视频/音频/代码/文本任务,切换最优模型。支持图片理解(qwen3-vl-plus)、视频音频(qwen3.5-plus)、代码(glm-5)、Office文档(MiniMax-M2.5)、推理等场景。零感知切换,无需手动操作。
错误写法(写死):
templet: '<input type="checkbox" lay-skin="switch" lay-text="开启|关闭">'
正确写法(动态):
templet: function(d) {
var text = d.business === 'A' ? '激活|冻结' : '有效|无效';
return '<input type="checkbox" lay-skin="switch" lay-text="' + text + '" :>';
}
注意:这里 lay-text 是字符串拼接进 HTML 的,不是 JS 属性赋值,所以不需要额外 form.render();但一旦表格重载(如分页、搜索),templet 会重新执行,确保每次都是最新文案。
中文文案要注意空格和全角符号
Layui 对 lay-text 内容不做清洗,如果文案里混入全角空格、中文顿号、破折号等,会导致右侧文案错位甚至截断。实测发现,当文案含全角字符时,Layui 内部计算宽度异常,可能让“关闭”文字被遮挡或换行。
- ✅ 推荐:纯半角字符 + 竖线分隔,如
lay-text="上线|下线" - ⚠️ 谨慎:带空格的中文,如
lay-text="已启用 | 已停用"(前后空格易引发样式偏移) - ❌ 避免:全角符号,如
lay-text="启用|关闭"(全角竖线)、lay-text="启用、关闭"(顿号)
最稳妥的方式是先在 HTML 中写好,用浏览器开发者工具检查最终渲染出的 <em></em> 标签内容是否完整、无截断——这是唯一能确认文案真正生效的验证点。










