laypage.render 没有 disable 参数,禁用需在 jump 回调中动态操作 DOM 和事件:页码为 1 时禁用上一页,页码达总页数时禁用下一页,并同步处理 skip 输入框和 limit 下拉框的禁用逻辑。

laypage.render 的 disable 参数不生效?别用它
layui 的 laypage.render() 没有内置的 disable 配置项,传 disable: true 或类似字段会被忽略。所谓“动态禁用翻页按钮”,本质是手动控制按钮状态——靠 DOM 操作 + 事件拦截,不是配置开关。
禁用上一页/下一页按钮的正确做法
必须在 jump 回调里判断当前页码,再用 jQuery 或原生 JS 修改对应按钮的 class 和事件绑定:
- 页码为 1 时,给「上一页」按钮加
layui-disabled类,并移除其 click 事件(或 return false) - 页码等于总页数时(
Math.ceil(count / limit)),对「下一页」做同样处理 - 不要只改 class:用户仍可点击,必须同步阻止事件冒泡或取消默认行为
- 每次
jump触发都要重算——因为页码、limit、count 都可能变,不能只初始化时判断一次
禁用跳转输入框(skip)和 limit 下拉框的坑
如果你禁用了 skip(即 layout 里没写 skip),那输入框根本不会渲染,自然不存在“禁用”问题;但若保留了 skip,仅靠隐藏 input 不够:
- 用户仍可通过回车提交跳转,必须监听
.layui-laypage-skip input的keydown事件,拦截 Enter 键 -
limits下拉框禁用要操作原生select的disabled属性,再调layui.form.render('select') - 禁用后记得同步更新
laypage.render()的count和limit参数,否则页码计算会错乱
reload 后禁用状态丢失?这是必然的
laypage.render() 每次调用都会重建整个分页 DOM,之前加的 class、绑定的事件全部清空。所以:
- 禁用逻辑不能只写在初始化里,必须包裹进
jump回调,且每次触发都执行 - 如果表格也用
table.reload(),要确保分页组件的jump和表格的done调用顺序合理——通常先等表格数据返回、拿到新count,再调laypage.render()并执行禁用逻辑 - 别试图用 CSS
pointer-events: none一劳永逸——移动端 Safari 对该属性支持不稳定,且键盘导航仍能聚焦


















