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

使用jQuery与JS获取单选框值仅返回'on'且无法读取内部span文本如何解决

问题根源

  • 你的<input type="radio">没有显式设置value属性,浏览器对于未定义value的单选/复选框,默认取值时就会返回on,这是浏览器的标准行为
  • input是自闭合的空标签,内部不能嵌套任何子元素,你代码里的span是input的平级兄弟节点,不是input的子元素,所以尝试获取input内部的span自然拿不到内容

修复方案

最优方案:给单选框加value属性

直接在模板的input标签上添加value属性,赋值为你要获取的{{c}}即可,后续不管是直接取val()还是表单提交都能直接拿到正确值,不需要额外读取span内容:

<!-- 把你的input标签改成下面的格式,checked属性按需保留即可 -->
<input type="radio" name="sportCourts" class="sportCourts" value="{{c}}" checked="checked">

若需要读取相邻span的内容

如果业务场景需要拿span里的文本,通过兄弟节点查找即可,同时你原来的JS代码多了一个多余的右括号,会导致语法报错,修复后的参考代码如下:

window.onload = function() {
  var courts = $('input[name="sportCourts"]').each(function(){
    // 获取当前单选框相邻的span文本
    let spanText = $(this).next('.sportsCourtsTxt').text();
    // 加了value属性之后可以直接取val()拿到对应值
    let inputVal = $(this).val();
    document.getElementById("monthTxt").innerHTML += `值:${inputVal},文本:${spanText}<br>`;
  });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:27:02