<input type="checkbox" name="chkpart3" value="chkpart3" onclick="chkpart('cityname3')">
<input type="checkbox" name="cityname3" value="701">北京;
<input type="checkbox" name="cityname3" value="763">上海;function chkpart(mname)
{
var e = document.getElementById(mname);
e.checked =!e.checked;
}问题是我点击后,只有一个复选框被勾中或取消,这是什么原因,郁闷。

解决方案 »

  1.   

            function chkpart(mname){
                var e = document.getElementsByName(name);
                for(var i=0;i< e.length;i++){
                    e[i]=!e[i].checked;
                }
            }
      

  2.   

    document.getElementById(mname);
    只能获取第一个id为mname的dome对象,当取到对象时即刻返回,不再对下面的dom进行检索。
      

  3.   

    getElementById 浏览器都假设页面id是唯一的,所以只返回第一个的,而且只有ie可以name和 id混用(不规范)。
    改用getElementsByName 这个ie会找所有id和name等于指定值的element,firefox等只会找到name为指定值的对象。
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <input type="checkbox" name="chkpart3" value="chkpart3" onclick="chkpart('cityname3')">
    <input type="checkbox" name="cityname3" value="701">北京;
    <input type="checkbox" name="cityname3" value="763">上海;<script type="text/javascript">
    <!--
    function chkpart(mname){
    var es = document.getElementsByName(mname);
    for(var i=0;i<es.length;i++){
    es[i].checked = !es[i].checked;
    }
    }
    //-->
    </script>
      

  4.   

    <input type="checkbox" id="cityname3" name="cityname3" value="763">上海;
    谢了。即使定义了id,用byid刚才测试也取不到值,byname就可以取到值,不懂,谁明白给我讲讲!