通过表单 ID 访问单选按钮值

Posted

技术标签:

【中文标题】通过表单 ID 访问单选按钮值【英文标题】:access radio button value through form id 【发布时间】:2013-07-12 22:25:53 【问题描述】:

我正在开发一个有多种形式的单选按钮的网站,其中一种是这样的:

<form id = "configuration">
    <ul>
        <li><input type="radio" name="configuration" id="0" value="0"/> GT Manual</li>
        <li><input type="radio" name="configuration" id="1" value="1"/> GT Automatic</li>
    </ul>
</form>

有没有一种方法(javascript)我可以直接访问单选按钮的值,例如

var value = document.getElementById("configuration").configuration.value;

(这里第一个“配置”是表单ID,而第二个“配置”是名称,而不是遍历表单中的每个元素来检查选择了哪个按钮?

谢谢!

【问题讨论】:

您应该使用jquery通过父名称访问子元素。 好的,谢谢。不过我一直在寻找一种 javascript 方法。 改用 getElementsByName() ! 【参考方案1】:

如果您使用的是 jQuery,您可以通过$('#configuration input:checkbox').val(); 知道选择了哪一个

【讨论】:

这个问题被标记为javascript,上面写着除非还包含框架/库的标记,否则需要一个纯 JavaScript 答案。即使不是这种情况,您的代码也会获得 first checkbox 而不是 checked radio button 的值【参考方案2】:

这样弄……

var radios = document.getElementsByName('configuration');
 for (i = 0; i < radios.length; i++) 
    if (radios[i].type == 'radio' && radios[i].checked) 
        alert(radios[i].value);
    

【讨论】:

现有代码已经获取了无线电组,您的新行替换了它,但由于它们是&lt;input&gt; 而不是&lt;configuration&gt;s,所以不起作用。您还应该避免使用全局变量。 谢谢!如果您删除“标签”,这是完全有效的。我只是想知道,因为单选按钮选择在所有共享名称的元素中是唯一的,所以可能有一个函数可以直接检查按钮。但似乎不太可能没有...... :(【参考方案3】:

由于单选按钮是组的一部分,因此它们具有相同的名称并由不同的 ID 标识。 KyleK 提供的答案是完全有效的。 但是,这是另一种方法 http://jsfiddle.net/9W76C/

if (document.getElementById('0').checked) 
   alert("GT Manual");

我还建议你使用 jquery...

【讨论】:

【参考方案4】:

没有。您必须遍历无线电组以找出选择了哪一个。 .configuration 是标准 NodeList,而不是具有处理无线电组的额外功能的“子类”。

【讨论】:

嗯,我只是想知道,既然不能在同名按钮中选择两个按钮,为什么没有直接访问选择按钮的功能?我的意思是,这样的函数的实现可能仍然循环通过节点列表,但是有没有一个 html/javascript 内置函数可以做到这一点?

以上是关于通过表单 ID 访问单选按钮值的主要内容,如果未能解决你的问题,请参考以下文章

通过 AJAX 更新单选按钮更改的表单值

通过单选按钮更改 Jquery 表单提交

vue 表单之通过v-model绑定单选按钮radio

html中<radio>单选按钮控件标签用法解析及如何设置默认选中

基于单选按钮选择的访问选项卡控件

如何在 Jquery 中禁用输入(单选)按钮内的类