0

0

如何根据单选按钮状态动态显示或隐藏关联表单项

花韻仙語

花韻仙語

发布时间:2026-01-25 18:17:01

|

378人浏览过

|

来源于php中文网

原创

如何根据单选按钮状态动态显示或隐藏关联表单项

本文介绍如何使用 jquery 根据“是否目击跌倒”单选按钮的初始值及用户操作,动态控制“其他说明”输入框所在 div 的显隐状态,并确保页面加载时即按数据正确初始化。

在表单开发中,常需实现「条件显示」逻辑:仅当用户选择特定选项(如 "Sim")时,才展示关联的补充字段(如文本输入框)。本例中,目标是——页面加载时依据 data 中的 Queda 值自动勾选对应单选按钮,并立即显示/隐藏 #quedpresss 区域;同时,后续用户手动切换选项时,该区域也应实时响应

✅ 正确实现方式

核心要点有三:

  • 初始化时判断并显隐:在设置 checked 属性后,立即调用 .show() 或 .hide() 控制目标 div;
  • 绑定交互事件:为两个单选按钮分别添加 click 事件监听,实现用户操作后的动态响应;
  • 避免重复绑定:事件绑定应放在循环外(本例中 data.length === 1,但结构上仍建议优化),且推荐使用事件委托或确保只绑定一次。

以下是优化后的完整代码(含注释与健壮性增强):

Beautiful.ai
Beautiful.ai

AI在线创建幻灯片

下载
$(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').hide(); // 隐藏“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 逻辑)。

通过以上方案,即可实现清晰、可维护、用户体验一致的条件显示逻辑。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

150

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

394

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

502

2023.12.04

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

181

2023.12.06

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

120

2024.02.23

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

175

2024.02.23

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

45

2026.01.23

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 7.1万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 1.5万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号