如何根据单选按钮状态动态显示或隐藏关联表单项
发布时间 - 2026-01-25 00:00:00 点击率:次本文介绍如何使用 jquery 根据“是否目击跌倒”单选按钮的初始值及用户操作,动态控制“其他说明”输入框所在 div 的显隐状态,并确保页面加载时即按数据正确初始化。
在表单开发中,常需实现「条件显示」逻辑:仅当用户选择特定选项(如 "Sim")时,才展示关联的补充字段(如文本输入框)。本例中,目标是——页面加载时依据 data 中的 Queda 值自动勾选对应单选按钮,并立即显示/隐藏 #quedpresss 区域;同时,后续用户手动切换选项时,该区域也应实时响应。
✅ 正确实现方式
核心要点有三:
- 初始化时判断并显隐:在设置 checked 属性后,立即调用 .show() 或 .hide() 控制目标 div;
- 绑定交互事件:为两个单选按钮分别添加 click 事件监听,实现用户操作后的动态响应;
- 避免重复绑定:事件绑定应放在循环外(本例中 data.length === 1,但结构上仍建议优化),且推荐使用事件委托或确保只绑定一次。
以下是优化后的完整代码(含注释与健壮性增强):
$(document).ready(function() {
var data = [
{ Queda: "Sim", Outro: "Teste1" }
];
// 取第一条数据(若有多条,可遍历处理)
var item = data[0];
var Queda = item.Queda;
var Outro = item.Outro;
// 初始化单选状态 & 关联区域显隐
if (Queda === "Sim") {
$('#quedpresa').prop('checked', true);
$('#quedpresss').show(); // 显示“Outro”输入区
} else if (Queda === "Não") {
$('#quedpresa1').prop('checked', true);
$('#quedpresss').h
ide(); // 隐藏“Outro”输入区
}
// 绑定用户交互事件(注意:使用 .on() 更安全,避免重复绑定)
$('input[name="quedpresa"]').on('change', function() {
if ($(this).val() === "Sim") {
$('#quedpresss').show();
} else {
$('#quedpresss').hide();
}
});
// 设置输入框值
$('#quedpressa1').val(Outro);
});⚠️ 注意事项
- 不要在循环内重复绑定事件:原答案中 $('#quedpresa').click(...) 在循环中执行,若数据量增大易导致多次绑定,引发重复触发;
- 推荐使用 change 而非 click:change 事件更语义化,兼容键盘操作(如 Tab + 空格切换);
- display: none 初始样式可保留,jQuery 的 .show() / .hide() 会精确控制该样式;
- 若使用现代前端框架(Vue/React),应改用响应式数据驱动,而非手动 DOM 操作。
✅ 最终效果
- 页面加载后,若 Queda === "Sim" → “Sim”被选中,#quedpresss 立即可见;
- 用户点击 “Não” → #quedpresss 自动隐藏;点击 “Sim” → 自动显示;
- 输入框 #quedpressa1 始终预填 Outro 值,且仅在显示状态下可编辑(符合 UX 逻辑)。
通过以上方案,即可实现清晰、可维护、用户体验一致的条件显示逻辑。
# vue
# react
# jquery
# 前端
# 前端框架
# 循环
# Length
# 委托
# 事件
# dom
# display
# ux
# 绑定
# 输入框
# 单选
# 推荐使用
# 加载
# 而非
# 本例
# 放在
# 遍历
# 若有
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
轻松掌握MySQL函数中的last_insert_id()
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
如何快速使用云服务器搭建个人网站?
魔方云NAT建站如何实现端口转发?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel Session怎么存储_Laravel Session驱动配置详解
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
Laravel如何使用Gate和Policy进行授权?(权限控制)
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何快速搭建高效WAP手机网站?
中山网站制作网页,中山新生登记系统登记流程?
Laravel distinct去重查询_Laravel Eloquent去重方法
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
音乐网站服务器如何优化API响应速度?
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
如何用已有域名快速搭建网站?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Android滚轮选择时间控件使用详解
如何快速查询网站的真实建站时间?
如何确认建站备案号应放置的具体位置?
如何实现javascript表单验证_正则表达式有哪些实用技巧
如何自定义建站之星网站的导航菜单样式?
linux写shell需要注意的问题(必看)
网站建设整体流程解析,建站其实很容易!
佛山企业网站制作公司有哪些,沟通100网上服务官网?
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
nodejs redis 发布订阅机制封装实现方法及实例代码
高端网站建设与定制开发一站式解决方案 中企动力
EditPlus中的正则表达式 实战(1)
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
详解MySQL数据库的安装与密码配置
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
网站优化排名时,需要考虑哪些问题呢?
JavaScript模板引擎Template.js使用详解
利用vue写todolist单页应用
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
七夕网站制作视频,七夕大促活动怎么报名?
如何在云虚拟主机上快速搭建个人网站?
如何构建满足综合性能需求的优质建站方案?
Laravel如何自定义分页视图?(Pagination示例)
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】


