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

如何获取选中单选按钮的值?解决TypeError报错问题

解决单选按钮选中值获取与切换事件监听问题

错误原因分析

你遇到的TypeError: Cannot read properties of null (reading 'value'),是因为页面初始化时没有任何单选按钮被默认选中,document.querySelector('input[name="example"]:checked')返回了null,直接访问null的value属性自然会触发报错。


完整解决方案(带分步解释)

1. 处理初始值获取(避免报错)

先判断是否存在选中的单选按钮,再获取值:

// 先获取选中的单选按钮元素
const checkedRadio = document.querySelector('input[name="example"]:checked');
// 用三元运算符做容错处理:有选中项就取value,否则返回提示文本
let valueName = checkedRadio ? checkedRadio.value : '未选中任何选项';
console.log(valueName);

如果希望页面加载时默认选中一个选项,直接给对应单选按钮加checked属性即可:

<input type='radio' value='value1' name='example' id='value1' checked>
<label for='value1'>Value 1</label>
<input type='radio' value='value2' name='example' id='value2'>
<label for='value2'>Value 2</label>
<input type='radio' value='value3' name='example' id='value3'>
<label for='value3'>Value 3</label>

2. 添加选择切换事件监听

监听单选按钮的change事件,用户切换选择时自动打印选中值,有两种实现方式:

方式一:给每个单选按钮绑定事件(适合新手理解)
// 获取同组所有单选按钮
const radioButtons = document.querySelectorAll('input[name="example"]');

// 遍历每个按钮,添加change事件监听
radioButtons.forEach(radio => {
  radio.addEventListener('change', function() {
    // 单选按钮组中只有选中的按钮会触发change事件,直接打印值即可
    console.log('当前选中的值:', this.value);
  });
});
方式二:事件委托(更高效,适合大量按钮场景)

给单选按钮的父容器绑定事件,利用事件冒泡特性监听子元素的变化:

<!-- 先给单选按钮套一个父容器 -->
<div id="radio-group">
  <input type='radio' value='value1' name='example' id='value1'>
  <label for='value1'>Value 1</label>
  <input type='radio' value='value2' name='example' id='value2'>
  <label for='value2'>Value 2</label>
  <input type='radio' value='value3' name='example' id='value3'>
  <label for='value3'>Value 3</label>
</div>
// 获取父容器
const radioGroup = document.getElementById('radio-group');

// 给父容器添加change事件监听
radioGroup.addEventListener('change', function(e) {
  // 判断触发事件的元素是否是目标单选按钮
  if (e.target.type === 'radio' && e.target.name === 'example') {
    console.log('当前选中的值:', e.target.value);
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:46:04