第一种:用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