使用JavaScript来统计CheckBox

在我所做的项目中一些CheckBox

<input name="MSG"  type="checkbox" onclick="javascript:selectNum(this);" />

位于GridView中,从数据库中取数,循环显示,现在要统计当前的选中数,并且最大数为5

原来采用的方法是每次点击的时候对SelectedNum进行加减,并且显示,这样存在的问题是,从下个页面返回的时候SelectNum会被重新置0,从而与CheckBox当前选中数不相符。

改进办法是,每次点击都统计CheckBox被选中的个数,这样会损失一些性能,JavaScript代码如下

var SelectedNum = 0;
function selectNum(e) {
    //统计当前有多少被选中
    SelectedNum = 0;
    var form_1 = e.form;
    for (var i = 0; i < form_1.elements.length; i++) {
        var c = form_1.elements[i];
        if ((c.name == 'MSG') && (c.type == 'checkbox')) {
            if (c.checked) {
                if (SelectedNum > 4) {
                    e.checked = false;
                    alert('The maximum number allowed to be selected is 5.');
                    return;
                }
                SelectedNum++;
            }
        }
    }

posted @ 2008-12-17 22:57  小鲨  阅读(415)  评论(0编辑  收藏  举报