新闻详情

新闻详情

首页 / 资讯中心 / 详情

三步修复 Layui Tabs 标签页中表单渲染错乱:切换 Tab 后下拉框为什么错位

发布时间:2026/10/2 15:05:25来源:尧图网络
三步修复 Layui Tabs 标签页中表单渲染错乱:切换 Tab 后下拉框为什么错位
三步修复 Layui Tabs 标签页中表单渲染错乱切换 Tab 后下拉框为什么错位【免费下载链接】layui一套遵循浏览器原生态开发模式的 Web UI 组件库。项目地址: https://gitcode.com/GitHub_Trending/la/layuiLayui 把表单Form放进标签页Tabs后切到非首个标签常出现输入框错位、下拉框宽度异常、图标叠字。下面先复现、讲清原因再给一套可照做的修复步骤改完附自查清单。先复现一下问题用当前主干源码3.xlay-前缀类名即可稳定复现2.x 系列把类名换成layui-前缀现象相同页面里放一组lay-tabs第二个标签里放一个lay-form含下拉框和带lay-affix图标的输入框页面加载时调用form.render()此时第二个标签还是隐藏的点击切到第二个标签看到的现象下拉面板宽度变成 0或宽度对不上触发输入框输入框右侧的图标压住文字间距为 0数字输入框的加号/减号按钮错位为什么会这样打个比方关着抽屉你在里面量家具量出来全是零——抽屉拉开后家具当然对不上格子。机制很短非活动标签内容被.lay-tabs-item { display: none }隐藏见 src/css/modules/tabs.css切换标签只是给内容项加减lay-show类不会触发任何组件重新渲染而 Form 渲染时要在注入时刻量取元素实际宽度下拉面板宽度取title.width()、输入框图标要写padding-rightdisplay: none的容器里宽度全是 0于是 padding、面板宽度都按 0 计算标签显示后再展开下拉错位就暴露出来了按步骤修复核心一句话尺寸类组件必须在可见状态渲染切换后补渲染一次即可。第 1 步给每个标签页的表单一个唯一的lay-filterdiv classlay-tabs iddemoTabs ul classlay-tabs-header li lay-idbase基本信息/li li lay-idadvance高级设置/li /ul div classlay-tabs-body div classlay-tabs-item form classlay-form lay-filterbaseForm!-- 输入框、select --/form /div div classlay-tabs-item form classlay-form lay-filteradvanceForm!-- 输入框、select --/form /div /div /divlay-filter是后面精准重渲染的钥匙别省。第 2 步监听切换事件切换完成后重渲染当前标签里的表单⭐layui.use([tabs, form], function () { var tabs layui.tabs, form layui.form; tabs.render({ elem: #demoTabs }); // 实例 id 默认取容器 id // 切换完成后执行thisBodyItem 是当前活动的内容项 tabs.on(afterChange(demoTabs), function (data) { var filter data.thisBodyItem .find(form) .attr(lay-filter); // 当前表单的 filter form.render(null, filter); // 只重渲染这一个表单 }); });第 3 步动态插入内容的标签先显示、后渲染如果某个标签的内容是 AJAX 或模板插入的不要插完立刻 render——插入时它还是隐藏的宽度照样是 0。在afterChange回调里内容此时已可见再调form.render(null, filter)。备选做法一句话重表单可以懒加载记录各标签是否初始化过首次切入时才注入 HTML 并渲染后续切换跳过。改完怎么验证检查项预期表现切到第二个标签输入框与右侧图标不再重叠间距正常展开 select面板宽度与触发输入框一致位置紧跟其下数字输入框加/减按钮对齐点击可正常步进来回切换多次组件不重复、不叠加、不错位表单提交/校验错误提示落在对应表单项上样式正常常见问题Q每次切换都重渲染会不会事件绑重复、开销很大不会。Form 的渲染是幂等的——源码里每次渲染先hasRender.remove()移除旧的装饰元素再重建见 src/components/form.js不会叠加节点和事件。且我们只渲染当前标签那一个表单范围很小。Q切换时直接全局form.render()行不行能跑但会扫描整页所有表单页面表单多时有可见卡顿还可能干扰其他实例。带上lay-filter精准渲染更稳。Q第一个默认激活的标签也要处理吗不用。它加载时就是可见的初始form.render()量到的宽度是对的错位的只是加载时被藏起来的那些标签。记住关键点隐藏容器里渲染量出来的尺寸就是 0让表单在可见时渲染、切换后补渲染问题就消失了。组件实现可对照源码src/components/tabs.js、src/components/form.js【免费下载链接】layui一套遵循浏览器原生态开发模式的 Web UI 组件库。项目地址: https://gitcode.com/GitHub_Trending/la/layui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【AI黑话日日新】Day 049|MoE(混合专家) 2026/10/2 15:49:13

【AI黑话日日新】Day 049|MoE(混合专家)

一句话说清:混合专家(Mixture of Experts)就是给模型安排许多个各有所长的小分块,再配一个调度员,每处理一个词只叫最相关的几个上场,而不是每次都让全体一起算。 1. 它到底在说什么 混合专家(Mixture of Experts,常简写为 MoE)是一种把“大网络”拆成“很多小专家 +…

阅读更多 →
长距离输水管道渗漏监测:数据处理驱动的精准定位与工程实践 2026/10/2 15:49:07

长距离输水管道渗漏监测:数据处理驱动的精准定位与工程实践

简介:这是一篇发表于《水利建设与管理》的学术论文,聚焦长距离输水管道渗漏监测数据处理,面向水利工程运维人员、管道监测数据分析工程师及给排水相关专业学生,属于专业参考文献与数据处理方法指导资料。论文以大伙房水库输水工程…

阅读更多 →
明星X主播X品牌三方联播:直播方案策划与排盘全解析 2026/10/2 15:49:07

明星X主播X品牌三方联播:直播方案策划与排盘全解析

简介:这是一份2020年娜扎与薇娅联手SKG品牌开展淘宝直播带货的完整策划方案,适合电商直播策划、品牌营销人员及新媒体运营者参考。方案围绕“娜小古”定制款颈椎按摩仪展开,系统呈现了直播背景、产品卖点、艺人互动形式、预热种草策略及直播现…

阅读更多 →
AI Agent 安全实战:从提示词注入到 OpenClaw 部署避坑指南 2026/10/2 15:49:07

AI Agent 安全实战:从提示词注入到 OpenClaw 部署避坑指南

1. 从"能聊天"到"能干活":AI Agent 到底跨过了哪道坎过去两年,大模型给人的印象基本停留在"问答"层面——你问它答,答完就结束,它不会主动去查资料、不会自己打开浏览器、更不会帮你把一份报表填好…

阅读更多 →
OpenShell完全指南:一键恢复Windows经典开始菜单与资源管理器增强 2026/10/2 15:49:07

OpenShell完全指南:一键恢复Windows经典开始菜单与资源管理器增强

前阵子帮朋友的电脑重装系统,他拿到新电脑的第一句话不是问驱动装没装,而是问"开始菜单能不能变回以前那样"。Windows 8那会儿把开始菜单砍掉,接着Windows 10又在磁贴和列表之间搞了个四不像,到Windows 11干脆给你居中平…

阅读更多 →
基于Python与PyQt5的城市交通流量可视化系统设计与实现 2026/10/2 15:49:00

基于Python与PyQt5的城市交通流量可视化系统设计与实现

简介:这是一套基于Python的城市交通流量数据可视化分析系统的完整项目实例,适合具备Python基础、希望将数据科学与后端开发结合的研发人员、数据分析师、交通规划师及高校师生。项目以模块化分层架构为主线,完整覆盖多源交通数据的采集整合、…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉