复选框空间如下:
<input type="checkbox" name="checkbox" id="checkbox" onclick="fnIsCheck()" value="<%=user.getId() %>"/>
获取复选框value值的代码如下:
function fnIsCheck()
{
    var chArr=document.getelementsByName("checkbox");
    alert(chArr);
}为什么点击复选框后弹出object 然后我有这样写了:
function fnIsCheck()
{
    var chArr=document.getelementsByName("checkbox").value;
    alert(chArr);
}
点击复选框弹出了undefined 
各位大神 这到底是什么原因啊?我感觉我没写错啊,想了很久都想不出结果?求教!!

解决方案 »

  1.   

    1.方法名是区分大小写的,正确的写法是:getElementsByName();
    2.getElementsByName()的返回值是个数组,要用[]来访问数据;
    3.尽量避免使用checkbox之类的单词作为id、name属性值。<input type="checkbox" name="chk" id="chk" onclick="fnIsCheck()" value="<%=user.getId() %>" />
    <script type="text/javascript">
    function fnIsCheck() {
        var chArr = document.getElementsByName('chk')[0].value;
        //或者 var chArr = document.getElementById('chk').value;
        alert(chArr);
    }
    </script>
      

  2.   

    第一:楼主方法名写错了
    var chArr=document.getelementsByName("checkbox");
    应该是getElementsByName
    第二:document.getElementsByName 方法返回的是一个集合
    所以要改为
    function fnIsCheck()
    {
      var chArr=document.getElementsByName("checkbox")[0].value;
      alert(chArr);
    }
      

  3.   

    2楼说的对。但是为什么不用getElementById呢?这样一般不会发错。。
      

  4.   

    getElementsByName  方法返回的是一个数组所以lz   得通过索引的方式来拿数组的值 
      

  5.   

    楼上的兄弟们都说明白了~~不过我个人认为能用getElementById()的就用getElementById()
      

  6.   

    document.getElementsByName 这个返回的是个数组 所以你直接alert就是object
    并且数组是没有value这个属性的所以是undefined  
    var chArr=document.getelementsByName("checkbox");
    得到的是个数组
    你遍历这个数组item
    打印每个item.value就好了吧