You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于两组单选框的选中状态自动勾选对应组合单选框

解决方案

你只需要把这段原生JS代码放到页面的<script>标签中即可生效,不需要修改现有HTML结构:

// 封装组合匹配逻辑
function matchCombination() {
  // 读取当前选中的颜色值
  const selectedColor = document.querySelector('input[name="product_color"]:checked')?.value;
  // 读取当前选中的宝石值
  const selectedStone = document.querySelector('input[name="product_stone"]:checked')?.value;
  // 两个选项都有选中值才执行匹配
  if (!selectedColor || !selectedStone) return;

  // 遍历所有组合单选框
  document.querySelectorAll('input[name="combination"]').forEach(comboRadio => {
    // 匹配data属性与选中值
    if (comboRadio.dataset.color === selectedColor && comboRadio.dataset.stone === selectedStone) {
      comboRadio.checked = true;
      // 如果你需要拿到对应handle值,可以在这里读取comboRadio.dataset.handle
    }
  })
}

// 给颜色、宝石单选框绑定切换事件,选项变化时自动匹配组合
document.querySelectorAll('input[name="product_color"], input[name="product_stone"]').forEach(radio => {
  radio.addEventListener('change', matchCombination);
})

// 页面加载完成后自动匹配一次默认选中的选项
document.addEventListener('DOMContentLoaded', matchCombination);

代码说明

  • 用:checked选择器直接获取选中的单选框,不需要遍历整组单选框判断选中状态,写法更简洁
  • dataset是JS原生读取自定义data-*属性的API,data-color对应dataset.color,data-stone对应dataset.stone
  • 初始加载自动执行一次匹配,适配页面默认就有选中选项的场景
  • 如果需要处理选中组合不存在的场景,可以加判断逻辑,匹配不到对应单选框时给用户提示即可

内容的提问来源于stack exchange,提问作者Sunny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:45:05