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

5个单选输入任意被选中时,如何正确调用change函数?

问题原因

你当前代码失效的核心原因是:document.querySelectorAll()返回的是包含所有匹配元素的NodeList集合,并非单个DOM元素,直接给整个集合绑定onclick事件不会对集合内的元素生效。

修正方案

修改JS代码如下即可实现需求:

// 精准筛选所有radio类型的单选框,避免匹配到页面其他input元素
let list = document.querySelectorAll("input[type='radio']");
let price = document.getElementById("price");

function change() {
  price.innerHTML = '145';
}

// 遍历所有单选框,逐个绑定状态变更事件
list.forEach(radioItem => {
  radioItem.addEventListener('change', change);
})

优化说明

  • 用change事件代替click事件,更贴合单选框的交互场景:无论是鼠标点击选中,还是用键盘切换选中状态,都会触发回调,逻辑更严谨
  • 选择器增加[type='radio']限定,避免后续页面新增其他类型input时被误绑定事件

如果后续需要根据选中的单选框对应展示不同价格,只需要给每个<input>加value属性,再在change函数内通过this.value拿到选中值做对应计算即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:09:03