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

jQuery AJAX回调动态追加列表项内单选按钮无法互斥问题

问题原因

单选按钮的互斥规则是:只有name属性值完全相同的单选按钮才会被浏览器识别为同一组,实现选中互斥。你动态拼接的单选input没有设置name属性,浏览器会将每个按钮判定为独立分组,因此支持同时选中多个。
你之前获取索引始终返回0,是因为类名冲突:你把radiocheck这个类同时赋值给了父级ul列表和列表内的input,选择器匹配到的是ul元素而非单选按钮,自然拿不到正确的元素索引。
另外你代码里写的$(document).off().on(...)会解绑所有挂载在document上的事件,很容易破坏页面其他功能,不建议这么写。

修复方法
  • 给所有动态生成的同组单选按钮设置完全一致的name属性值
  • 调整类名,避免父容器和子元素使用相同类名导致选择器匹配错误
  • 移除全局off的写法,避免影响其他页面事件

修复后代码

$(document).ready(function() {
  $(document).on('click', '#submit', function(e) {
    e.preventDefault();
    var v1 = $('#value1').val();
    var v2 = $('#value2').val();

    $.ajax({
      type: "POST",
      url: "addsettings.php",
      data: {
        v1: v1,
        v2: v2
      },
      success: function(data) {
        if (data.includes("error")) {
          $('#message').html(data);
        } else {
          var result = $.parseJSON(data);
          var radio = result['radio'];
          var value = result['value'];

          // 核心修改:给单选按钮加统一name属性,修改input类名避免和父ul冲突
          var radiocheck = '<li><input type="radio" name="settingRadio" class="radio-item" value="' + radio + '" /></li>';
          var insertvalue = '<li><div>'+ value +'</div></li>';
          // 选择器对应修改为ul的专属类名
          $('.result> .radiocheck-list').append(radiocheck);
          $('.result> .value-list').append(insertvalue);
        }
      }
    });
  });
});

对应的HTML部分调整类名避免冲突:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="submit" id="submit">提交</button>
<input type="text" id="value1" />
<input type="text" id="value2" />
<div id="message"></div>
<div class="result">
  <!-- 给ul设置独立类名,和内部input类名区分开 -->
  <ul class="radiocheck-list"></ul>
  <ul class="value-list"></ul>
</div>

改完之后同组单选按钮就能正常互斥切换,后续获取选中值直接用$('input[name="settingRadio"]:checked').val()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:55:00