js取得radio被选中的值
[ 2016/11/07, JavaScript , 2963阅, 0评 ]

第一种:用document.getElementsByName()取值

<input type="radio" name="sex" value="男"/>
<input type="radio" name="sex" value="女">
<script>
var obj=document.getElementsByName("sex")
for (var i=0;i<obj.length;i++){
	if(obj[i].checked){
		sexValue=obj[i].value;
	}
}
</script>

第二种:用document.getElementById()取值

<form id="sexForm">
  <input type="radio" name="sex" value="男"/>
  <input type="radio" name="sex" value="女">
</form>
<script>
var obj = document.getElementById("sexForm").sex;
for(var i=0;i<obj.length;i++){
	if(obj[i].checked){
		sexValue = radionum[i].value
	}
}
</script>

这里有两个要注意的地方:一个是如何取值,一个是如何遍历。

document.getElementById("sexForm").sex这是根据form的id再取其中控件元素的name取值的方法,也可以用document.getElementsByName("sex")直接获得。

getElementById与getElementsByName的区别:getElementById取radio类型元素只能选取单个控件,getElementsByName取radio类型元素的时候是取出的整个radio数组。

如果一定要用getElementById,可先用getElementById取得整个表单的id.后面紧跟radio的name即可。

现在知道document.getElementsByName("sex")就是得到一个数组,该数组中的元素是该dom树中所有name为sex的元素,即使只有一个radio,也是一个只包含一个元素的数组;而document.all.sex则不同,它是得到页面中的sex元素的引用,当页面中存在多个radio时,它返回的是一个数组,如果页面中只包含一个radio,则得到的就是这个radio对象的引用,由于这时得到的不是一个数组,因此就不能遍历数组来进行判断了。

有朋自远方来...评论一下呗O(∩_∩)O