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

如何在两个div区块中获取各自单选按钮的选中值

问题:不同分类下的单选按钮无法同时选中,需获取分类对应选中值

页面中有两个区块分别对应「主菜」和「主酱汁」分类,希望能同时选中两个分类下的单选按钮(比如「孜然米饭」和「蔬菜咖喱」),但当前代码仅能选中一个,同时需要获取格式为[['主菜', 2], ['主酱汁', 7]]的选中结果。

原代码如下:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="row">
  <div class="col-sm-6" style="background-color:lightcyan;">
    <!-- Main Title like Min course,Gravy -->
    <h4 class="p-3 m-0 bg-light w-100" style="color:red">Main Course </h4>
    <input type="hidden" class="form-control buffetCategory" value="Main Course">
    <!-- needs to take value from here-->
    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection" class="form-check-input buffetSelection" value="1">
        <div>
          <h5 class="mb-1">Biryani Rice</h5>
        </div>
      </div>
    </div>

    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection" class="form-check-input buffetSelection" value="2">
        <div>
          <h5 class="mb-1">Jeera Rice</h5>
        </div>
      </div>
    </div>
  </div>

  <div class="col-sm-6" style="background-color:lightcyan;">
    <!-- Main Title like Min course,Gravy -->
    <h4 class="p-3 m-0 bg-light w-100" style="color:red">Main Gravy </h4>
    <input type="hidden" class="form-control buffetCategory" value="Main Gravy">
    <!-- needs to take value from here-->
    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection" class="form-check-input buffetSelection" value="6">
        <div>
          <h5 class="mb-1">Vegetable Dalcha</h5>
        </div>
      </div>
    </div>

    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection" class="form-check-input buffetSelection" value="7">
        <div>
          <h5 class="mb-1">Vegetable Kurma</h5>
        </div>
      </div>
    </div>
    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection" class="form-check-input buffetSelection" value="8">
        <div>
          <h5 class="mb-1">Vegetable Dalcha</h5>
        </div>
      </div>
    </div>

  </div>
</div>

<button type="button" class="btn btn-theme text-white fw-bold w-100" onclick="get_buffetDetails()">PROCEED</button>

<script>
  function get_buffetDetails() {
    var selectedbuffet = $('input[name=buffetSelection].buffetSelection:checked').val();

    console.log(selectedbuffet);
  }
</script>

修改方案

1. 调整单选按钮的name属性

单选按钮的name属性决定了互斥组,同一name的单选按钮只能选一个。因此需要给不同分类下的单选按钮设置不同的name:

  • 「主菜」分类下的单选按钮name设为buffetSelection-MainCourse
  • 「主酱汁」分类下的单选按钮name设为buffetSelection-MainGravy

2. 修改获取选中值的函数

遍历每个分类区块,获取分类名称和对应选中的单选按钮值,整理成目标格式。

修改后的完整代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="row">
  <div class="col-sm-6" style="background-color:lightcyan;">
    <h4 class="p-3 m-0 bg-light w-100" style="color:red">主菜</h4>
    <input type="hidden" class="form-control buffetCategory" value="主菜">
    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection-MainCourse" class="form-check-input buffetSelection" value="1">
        <div>
          <h5 class="mb-1">印度香饭</h5>
        </div>
      </div>
    </div>

    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection-MainCourse" class="form-check-input buffetSelection" value="2">
        <div>
          <h5 class="mb-1">孜然米饭</h5>
        </div>
      </div>
    </div>
  </div>

  <div class="col-sm-6" style="background-color:lightcyan;">
    <h4 class="p-3 m-0 bg-light w-100" style="color:red">主酱汁</h4>
    <input type="hidden" class="form-control buffetCategory" value="主酱汁">
    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection-MainGravy" class="form-check-input buffetSelection" value="6">
        <div>
          <h5 class="mb-1">蔬菜豆酱</h5>
        </div>
      </div>
    </div>

    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection-MainGravy" class="form-check-input buffetSelection" value="7">
        <div>
          <h5 class="mb-1">蔬菜咖喱</h5>
        </div>
      </div>
    </div>
    <div class="col-md-12 px-0 border-top">
      <div class="d-flex gap-2 p-3 border-bottom gold-members">
        <input type="radio" name="buffetSelection-MainGravy" class="form-check-input buffetSelection" value="8">
        <div>
          <h5 class="mb-1">蔬菜豆酱</h5>
        </div>
      </div>
    </div>

  </div>
</div>

<button type="button" class="btn btn-theme text-white fw-bold w-100" onclick="get_buffetDetails()">继续</button>

<script>
  function get_buffetDetails() {
    var result = [];
    // 遍历每个分类区块
    $('.col-sm-6').each(function() {
      var category = $(this).find('.buffetCategory').val();
      var selectedValue = $(this).find('.buffetSelection:checked').val();
      if (selectedValue) {
        result.push([category, parseInt(selectedValue)]);
      }
    });
    console.log(result);
    // 输出格式:[['主菜', 2], ['主酱汁', 7]]
  }
</script>

说明

  • 每个分类内的单选按钮保持互斥,不同分类可同时选中
  • 函数通过遍历分类容器,获取每个分类的隐藏域值(分类名称)和对应选中的单选按钮值,最终组合成目标数组格式
  • 已将英文文本翻译成中文,更符合使用场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:52:18