讲师中心 微信公众号
AI工具推荐 视频效率加速

layui选中下拉框后自动刷新另一个组件

夏强大大_1472

夏强大大_1472

发布时间:2026-08-24 10:19:30

|

587人浏览过

|

来源于php中文网

原创

Layui中监听select必须用form.on('select(filterName)'),需设lay-filter属性、包裹在layui-form内、动态插入后调用form.render('select')刷新,原生change事件无效。

layui选中下拉框后自动刷新另一个组件

form.on('select(filterName)') 是唯一可靠入口

直接监听 form.on('select(filterName)'),不是原生 change,也不是 click。Layui 渲染后会隐藏原生 select,真实交互发生在它生成的面板里,原生事件大概率不触发或延迟响应。

必须给目标 select 标签加上 lay-filter="xxx",否则 form.on() 找不到监听目标。回调函数里的 data.value 就是当前选中值,别再写 $(data.elem).val() 多此一举。

如果这个下拉框在弹窗、Tab 页或 JS 动态插入的 DOM 中,确保 form.on() 在 layui.use(['form'], function() { ... }) 内执行,且对应 DOM 已挂载完成。

刷新下游组件前先清空 + 禁用 + 加载态

用户快速切换选项时,前一个请求还没返回,后一个已发出,结果旧响应覆盖新状态——这是最常踩的竞态坑。Layui 不处理这个,得自己控。

  • 发起请求前,先把下游组件(比如另一个 select 或 table)设为禁用:$('#downstreamSelect').prop('disabled', true)
  • 同时清空非占位项:$('#downstreamSelect option:not(:first-child)').remove(),避免重复叠加
  • 可临时插入加载提示:$('#downstreamSelect').html('<option value="">加载中…</option>')
  • 请求成功后恢复启用:$('#downstreamSelect').prop('disabled', false)

刷新 select 必须调用 form.render('select')

拿到 AJAX 响应后,不能只写 $('#targetSelect').html(htmlStr) 就完事。Layui 的点击逻辑、选中态、搜索功能全靠 form.render('select') 重建 DOM 结构和事件绑定。漏掉这步,下拉框看起来有内容,但点不动、选不中、甚至控制台报 Cannot read property 'value' of undefined。

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载

注意两点:

  • 如果页面有多个表单区域,建议加 filter 参数:例如 form.render('select', 'myFormFilter'),避免误刷其他区域
  • 若需默认选中某项,除了 $('#targetSelect').val(value),还得手动设 selected 属性:$('#targetSelect option[value="' + value + '"]').prop('selected', true)

刷新表格单元格里的 select 要绕过 table.reload()

在 Layui 表格中做联动时,千万别调 table.reload() 或直接改 table.cache 后等自动同步——这会销毁正在编辑的 select,用户操作中断,保存时还是旧值。

正确做法是局部更新:

  • 用 $(tr).find('[name="' + targetField + '"]') 定位目标单元格内的 select
  • 设置新值并触发 change:.val(newVal).trigger('change')
  • 同步缓存:table.cache['tableId'][rowIndex][targetField] = newVal
  • 如果该列用了 templet,还要重生成 HTML 并 $(td).html(newHtml),最后再 form.render('select')

四个动作缺一不可,尤其容易忽略的是缓存同步和 form.render('select') 的组合调用。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2400

2023.06.14

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

340

2023.08.31

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2233

2023.11.15

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1141

2024.09.24

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

160

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

80

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

80

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

40

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

60

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 12.5万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 10.8万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn