layui switch 文字配置仅支持 lay-text 属性,格式为“开启|关闭”,需在渲染前设置或调用 form.render('switch') 生效;动态修改须先更新属性再重渲染,模板中应绑定数据字段而非硬编码。

直接改 lay-text 属性就行,但必须在渲染前设置,或重新 form.render('switch') 才生效;用 JS 动态改 DOM 属性不会自动刷新 UI 文字。
lay-text 是唯一可控的文字配置项
Layui switch 不支持像原生 checkbox 那样用 textOn/textOff,它只认 lay-text 这个自定义属性。格式是 "开启|关闭"(竖线分隔),顺序固定:左边是开状态文字,右边是关状态文字。
-
lay-text必须写在<input type="checkbox">标签里,不能靠 JS 后续加属性来触发更新 - 如果页面已加载,又想改文字,得先改
elem.setAttribute('lay-text', '启用|停用'),再调form.render('switch') - 表格中每个 switch 的
lay-text可以不同,但建议统一,避免维护混乱
表格里动态设 lay-text 容易漏掉这一步
在 table.render 的 templet 中拼 HTML 时,lay-text 值必须从数据字段取,不能硬编码。否则所有行都显示一样文字。
智能模型自动切换 V5.0.2 - 多模态感知,自动识别图片/视频/音频/代码/文本任务,切换最优模型。支持图片理解(qwen3-vl-plus)、视频音频(qwen3.5-plus)、代码(glm-5)、Office文档(MiniMax-M2.5)、推理等场景。零感知切换,无需手动操作。
- 错误写法:
<input name="status" lay-skin="switch" lay-text="ON|OFF">(全表固定) - 正确写法:
<input name="status" lay-skin="switch" lay-text="{{ d.text_on }}|{{ d.text_off }}">(假设数据有d.text_on和d.text_off字段) - 注意:Layui 模板语法不支持表达式运算,
{{ d.status === 1 ? '开' : '关' }}这种写法无效
JS 修改后不生效?检查这三个点
常见现象:DOM 上能看到 lay-text 属性已变,但开关上文字还是旧的。
- 没调
form.render('switch')—— 改完属性必须重渲染,否则 UI 不读新值 - 用了
$(elem).attr('lay-text', ...)但没传字符串,比如传了数组或 undefined,Layui 解析失败后会 fallback 到默认 "ON|OFF" - 在
form.on('switch()')回调里试图改当前开关的lay-text,此时重渲染会干扰事件流,文字可能闪一下又回退
最稳的做法:文字内容确定后,在生成 HTML 阶段就写死 lay-text;真要运行时换,就整行 DOM 替换 + form.render('switch'),别只动属性。










