1、 给单选框设置相应的 name
2、 获取所有的单选框,循环判断,示例代码如下:
// 获取指定 name 的单选框的值function getValueForRadio(name) {
// 获取所有的 input 元素
var nodes = document.getElementsByTagName('input')
// 循环判断
for (var i=0 i<nodes.length i++) {
// 如果类型是 radio,name 也符合要求,而且也被选中了
if (nodes[i].type==='radio' && nodes[i].name===name && nodes[i].checked) {
//返回相应的值
return nodes[i].value
}
}
}
3、 在你需要的地方,用合适的参数调用上面的函数 getValueForRadio 即可。
以上,请采纳,请给分。
我只能说,你这逻辑明显不对,你应该是要为每一个radio控件绑定onclick事件,点击的时候alert一下。
你的代码有几个错误。
1、getElementsByName("radios")返回的是一个数组,你不能为一个数组对象绑定onclick事件
2、循环绑定js的onclick事件,需要借用闭包或者函数的方式,否则绑定的onclick事件都会是最后一个对象的方法。
以下是我用闭包的方式解决你的绑定方法,你可以看一下,把你的所有js去掉,页面不变,js换成如下代码:
<script type="text/javascript">var box = document.getElementsByName("radios")
// 循环为每个 radio 绑定 onclick 事件
for (var i = 0 i < box.length i++) {
(function() {
var boxone = box[i]
box[i].onclick = function() {
// 如果当前的 radio 被选中,则 alert 他的 value
if (boxone.checked) {
alert(boxone.value)
}
}
})()
}
</script>