layer.confirm 的 btn 参数是长度≥2的字符串数组,首项为“确定”按钮文字,次项为“取消”,第三项可选;默认为['确定','取消'],如需修改只需传入对应数组,例如['提交','取消']。

直接改 btn 数组第一个字符串就行,不用动 CSS、不靠插件、也不用重写 HTML。
layer.confirm 的 btn 参数怎么用
btn 是一个长度 ≥2 的字符串数组,顺序固定:第一个元素是「确定」按钮文字,第二个是「取消」,第三个(可选)对应额外按钮。默认值是 ['确定', '取消']。
- 想改成「提交」,就传
btn: ['提交', '取消'] - 想支持英文,用
btn: ['OK', 'Cancel'] - 支持 HTML 字符串,比如
btn: ['<i class="layui-icon"></i> 删除', '算了'],但别拼接用户输入,防 XSS - 数组长度必须 ≥2,否则「取消」按钮会消失,且右上角 × 点击后不会触发
cancel回调
为什么 layer.alert 改不了按钮文字
layer.alert 的「确定」按钮是硬编码的,传任何 btn 都会被忽略——这是最常踩的坑。
- 真要改文案,必须换用
layer.open,手动指定btn和yes回调 - 示例:
layer.open({ content: '操作成功', btn: ['知道了'], yes: function(index){ layer.close(index); } }); - 如果已有大量
layer.alert调用且无法替换,强行改 DOM 属于 hack 行为:时机难控、版本兼容差、多弹层易误操作,不推荐线上使用
全局统一改默认按钮文案
全站都要中英切换或业务化文案(如「确认操作」「暂不处理」),别在每个 layer.confirm 里重复写 btn。
- 用
layer.config({ btn: ['确认', '取消'] })全局覆盖,默认影响所有后续的layer.confirm、layer.alert等带按钮的弹层 - 已显式传了
btn的弹层,优先级更高,不受此配置影响 - 容易被忽略的是:文案改了,但回调里的
console.log或注释没同步更新,比如写了btn: ['跳过'],但回调里还写着// 保存数据,时间一长自己都忘了「跳过」到底执行什么
按钮文字长度会影响布局,过长(如「我已阅读并同意全部条款」)会导致换行或溢出,Layui 默认不做截断;建议控制在 4 字以内,或加 CSS 强制单行显示。











