You need to enable JavaScript to run this app. 如何用JavaScript动态创建Bootstrap单选按钮 实现每个卡片默认选中Yes
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript动态创建Bootstrap单选按钮 实现每个卡片默认选中Yes

问题原因

同一页面内,name属性完全相同的单选按钮会被浏览器识别为同一组,同组单选按钮天然互斥,仅能有一个处于选中状态。你所有卡片的Yes/No单选按钮都共用了name="choosePred",因此无论怎么设置选中状态,最终都只会保留一个选中项,也就是你看到的仅第一个卡片的Yes处于选中状态。

解决方法

给每个轮播卡片的单选按钮组设置独立的name值,直接复用循环的索引idx做区分即可:
找到创建单选按钮的代码段,修改name赋值逻辑:

// 原来的 yesInput.name = "choosePred"; 替换为
yesInput.name = `choosePred_${idx}`;

// 原来的 noInput.name = "choosePred"; 替换为
noInput.name = `choosePred_${idx}`;

修改完成后,每个卡片的单选按钮为独立分组,互不干扰,创建时设置的yesInput.checked = true会直接生效,循环结束后额外写的批量设置选中的代码可以直接删除。

额外优化提示

你当前创建轮播项的代码存在类名重复添加的问题,且默认激活的是第二个轮播项(索引为1),可以调整为更合理的写法:

const carouselItem = document.createElement("div");
// 先统一加基础类
carouselItem.classList.add("carousel-item");
// 第一个轮播项加激活类
if (idx === 0) {
  carouselItem.classList.add("active");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 06:45:04