【发布时间】:2017-12-20 15:04:58
【问题描述】:
我正在尝试仅使用 JavaScript 访问表单中选中的单选按钮的值,而不使用 jQuery。我查看了这个并看到了很多答案,但是当我将相同的代码复制到我的项目中时,由于某种原因它不起作用。这是我的代码。
<form>
<input type="radio" name="style" value="3" checked>
<input type="radio" name="style" value="5">
<input type="radio" name="style" value="10">
</form>
我尝试使用此 JavaScript 代码访问该值:
var value = document.querySelector('input[name="style"]:checked').value;
console.log(value);
我假设这会给我字符串 3 作为记录值。当我尝试这个示例时,我收到以下错误:
request.js:1 Uncaught TypeError: Cannot read property 'value' of null
at request.js:1
我还尝试使用名为 style 的输入数组的 for 循环,但这也不起作用。它找到了所有三个输入,但在数组中没有它们的值。有人可以解释什么是错的吗?如果这很明显,请耐心等待,我仍在学习,我只是在努力变得更好。
【问题讨论】:
-
在单个文件中对我来说效果很好(复制 HTML 并将 JS 插入到
<script>标签下的同一文件中) -
您的代码对我有用。您是否从没有选中任何单选按钮开始?仅当
document.querySelector('input[name="style"]:checked')为空时才会发生错误,仅当 A)单选按钮不在 DOM 中或 B)未选中任何单选按钮时才会发生。 -
我发现了问题。我在一个外部文件中有我的 JavaScript。我将它从我的文档的头部移动到所有 HTML 下,以便在页面呈现后加载它。我认为这是修复它的原因吗?并感谢大家的回复。以前有人因为问问题而杀了我,但我没有导师,而且我是新手,所以这就像该死的感谢你杀死我的灵魂试图找到答案。
标签: javascript jquery html radio-button