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

JavaScript获取Radio值异常:点击单选框始终返回undefined

解决单选框值返回undefined的问题

你的代码存在两个核心问题导致返回undefined,下面按你的要求修改,保证未选中状态也能正常工作:

  1. 单选框缺少value属性:你写的<input type="radio">没有设置value属性,即便选中,elements[i].value也无法获取到有效内容。需要给Yes、No对应的单选框分别添加value="Yes"和value="No"。
  2. 参数名称不匹配:display()函数里调用getRadioValue('7yesno'),但单选框的name属性是Q7yesno,参数名称错误,要改成getRadioValue('Q7yesno')。

另外针对你要求的「未选中也能正常工作」,我们可以在遍历完所有单选框都没找到选中项时,返回明确的默认值(比如null),避免返回undefined,同时在弹窗里做对应提示。

修改后的完整代码如下:

<body>
    <form id="Q7" style="display:block">
        <br>
        7. <script type="text/javascript">document.write(Q7)</script><br>
        Yes <input type="radio" onclick="javascript:Q7_check();" name="Q7yesno" id="Q7_Yes" value="Yes" />
        No  <input type="radio" onclick="javascript:Q7_check();" name="Q7yesno" id="Q7_No" value="No" />
    </form>
    
    <button onclick="display()">Display value</button>

<script>
function getRadioValue(theRadioGroup)
{
    var elements = document.getElementsByName(theRadioGroup);
    for (var i = 0, l = elements.length; i < l; i++)
    {
        if (elements[i].checked)
        {
            return elements[i].value;
        }
    }
    // 未选中时返回明确值,避免undefined
    return null;
}

function display() {
  var x = getRadioValue('Q7yesno');
  // 处理未选中的情况
  var displayText = x ? `The value of the radio button is: ${x}` : "No radio button selected";
  alert(displayText);
}
</script>
</body>

修改后效果:

  • 选中Yes/No时,弹窗会显示对应的选中值
  • 未选中任何单选框时,弹窗会显示提示文本而非undefined

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:20:36