JSP复选框全选和反选……

JSP复选框全选和反选……

问题描述:

我的复选框是以循环来做的,所有每个复选框上面的NAME都是一样的,现在我要实现全选和反选该怎么做,如果按一般的方法做结果是只能选中一个复选框。。。。。
急求答案
[b]问题补充:[/b]
谢谢各位大师回答,我需要再补充一个小问题:
当全选 的时候把所有复选框的文本值放入到一个textarea中,去复选框的value放入到一个HIDDEN中;
再全不选的时候清空textarea和hidden的value
不知道是我JS写得有问题还是怎样,我只能加一个值进去,而且不加值我可以实现全选跟反选,但加了赋值的语句进去后就只能选一个了

[code="js"]

function selectIt() { form = document.lzyy action = event.srcElement.name for (var i = 0; i < form.elements.length; i++) { if (form.elements[i].name == "checkbox") { e = form.elements[i] e.checked = (action == "selectAll") ? (form.selectAll.checked) : (!e.checked) ////在这里 通过条件表达式?:来使每个框反选。朋友们可以好好思考一下。这种首先是一种实现方式。其二 还能是代码简练。哈哈 反正个人是喜欢这种方式拉。 } } }

全 选
反 选
Item1
Item2
Item3
Item4
Item5

[/code]

[code="js"]

<head>
    <script type="text/javascript">
        function checkEvent(name, allCheckId) {
            var allCk = document.getElementById(allCheckId);
            if (allCk.checked == true) checkAll(name);
            else checkAllNo(name);

        }

        //全选
        function checkAll(name) {
            var names = document.getElementsByName(name);
            var len = names.length;
            if (len > 0) {
                var i = 0;
                for (i = 0; i < len; i++)
                names[i].checked = true;

            }
        }

        //全不选
        function checkAllNo(name) {
            var names = document.getElementsByName(name);
            var len = names.length;
            if (len > 0) {
                var i = 0;
                for (i = 0; i < len; i++)
                names[i].checked = false;
            }
        }

        //反选
        function reserveCheck(name) {
            var names = document.getElementsByName(name);
            var len = names.length;
            if (len > 0) {
                var i = 0;
                for (i = 0; i < len; i++) {
                    if (names[i].checked) names[i].checked = false;
                    else names[i].checked = true;

                }
            }

        }
    </script>
</head>

<body>
    <input type="checkbox" id="ckall" onclick="checkEvent('ck','ckall')" />
    全选
    <input type="checkbox" id="ckReserve" onclick="reserveCheck('ck','ckReserve')"
    />
    反选
    <br />
    <input type="checkbox" name="ck" value="1" />
    篮球
    <br />
    <input type="checkbox" name="ck" value="2" />
    旅游
    <br />
    <input type="checkbox" name="ck" value="3" />
    读书
    <br />
    <input type="checkbox" name="ck" value="4" />
    美食
    <br />
    <input type="checkbox" name="ck" value="5" />
    睡觉
</body>


[/code]

[code="js"]
// 说明:Javascript 控制 CheckBox 的全选与取消全选
function checkAll(name) {
var el = document.getElementsByTagName('input');
var len = el.length;
for (var i = 0; i < len; i++) {
if ((el[i].type == "checkbox") && (el[i].name == name)) {
el[i].checked = true;
}
}
}
function clearAll(name) {
var el = document.getElementsByTagName('input');
var len = el.length;
for (var i = 0; i < len; i++) {
if ((el[i].type == "checkbox") && (el[i].name == name)) {
el[i].checked = false;
}

}

}
[/code]

[code="js"]
var checkFlag = true;    
function ChooseAll() {
if (checkFlag) {        
var inputs = document.all.tags("INPUT");        
for (var i = 0; i < inputs.length; i++) {          
if (inputs[i].type == "checkbox" && inputs[i].id != "CheckAll") {
inputs[i].checked = true;          
}        
}
checkFlag = false;      
} else {        
var inputs = document.all.tags("INPUT");        
for (var i = 0; i < inputs.length; i++) {          
if (inputs[i].type == "checkbox" && inputs[i].id != "CheckAll") {
inputs[i].checked = false;          
}        
}
checkFlag = true;      
}    
}
[/code]

[code="js"]




测试测试

<!-- var ca = new Array(); function a() { var m = document.getElementsByName('test[]'); for (var i = 0; i < m.length; i++) { m[i].checked == true ? m[i].checked = false: m[i].checked = true; } } function b() { var m = document.getElementsByName('test[]'); var l = m.length; for (var i = 0; i < l; i++) { m[i].checked == true ? m[i].checked = false: m[i].checked = true; } } function c() { if (ca.length == 0) { ca = cache(); } cl = ca.length; for (var i = 0; i < cl; i++) { ca[i].checked == true ? ca[i].checked = false: ca[i].checked = true; } } function cache() { var m = document.getElementsByName('test[]'); var cache = new Array(); var l = m.length; for (var i = 0; i < l; i++) { cache[i] = m[i]; } return cache; } //-->

[/code]

把所有的复选框都得到,遍历第一个进行设置嘛,

如果用jquery的话,几行代码就搞定了

对啊,用document.getElementsByName("aa") 得到所有checkbox的集合。然后遍历,用js控制是否选中。估计楼主是没有用什么框架的了

晕菜了.取值通过id.都给你这么多参考代码了.你就不能多想想么?