在我所做的项目中一些CheckBox
<input name="MSG" type="checkbox" οnclick="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++;
}
}
}