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

JavaScript中无法将DOM元素值赋值给变量,报undefined错误求助

嘿,我来帮你搞定这个undefined的问题,主要是两个地方出了错:

1. HTML表单里的语法错误

你写的单选按钮标签里,name属性的格式不对:

<!-- 错误写法 -->
<input type="radio" name"w1" value = 'a' id="wla">

这里name"w1"少了一个等号,应该改成name="w1",浏览器才能正确识别这个表单控件的名称,JS里才能通过document.forms["someForm"]["w1"]找到它。

2. JavaScript写法2的语法错误

写法2里var w1 = 'some'后面没有加分号,而且这行完全没必要——你后面直接覆盖了w1的值,还容易触发语法错误。

修正后的完整代码

先把HTML改对,记得还要加提交按钮(不然没法触发onsubmit):

<form name="someForm" onsubmit="return submitAnswers()">
  <input type="radio" name="w1" value='a' id="wla">a.
  <input type="radio" name="w1" value='b' id="w1b">b.
  <button type="submit">提交答案</button>
</form>

然后是修正后的JS代码,另外要注意:单选按钮只有被选中时,value才会有值,如果没选中,直接取value会得到undefined,所以最好先判断是否有选中项:

function submitAnswers() {
  // 获取所有name为w1的单选按钮
  const w1Options = document.forms["someForm"]["w1"];
  let selectedAnswer;

  // 遍历找到选中的那个
  for (const option of w1Options) {
    if (option.checked) {
      selectedAnswer = option.value;
      break;
    }
  }

  if (selectedAnswer) {
    console.log('你选中的答案是:', selectedAnswer);
    // 这里可以写提交逻辑
  } else {
    alert('请先选择一个选项哦!');
  }

  return false; // 阻止表单默认提交,方便测试,正式场景按需修改
}

这样应该就能正常获取到单选按钮的值啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:18:50