<script>
function CheckChecked(elementObj)
{ var obj = document.getElementsByName("sample");
var j = 0;
for(var i=0;i<obj.length;i++)
{
if (obj[i].checked)
j ++;
}
if(j>3)
{
alert("错误,最多只能选择三项!");
elementObj.checked = false;
}
}
</script>
<TD> <INPUT type=checkbox value=2 name=sample onclick="CheckChecked(this);"> </TD>
<TD> A </TD>
<TD> <INPUT type=checkbox value=2 name=sample onclick="CheckChecked(this);"> </TD>
<TD> B </TD>
<TD> <INPUT type=checkbox value=2 name=sample onclick="CheckChecked(this);"> </TD>
<TD> C </TD>
<TD> <INPUT type=checkbox value=2 name=sample onclick="CheckChecked(this);"> </TD>
<TD> D </TD>
<table border=1><tr><TD> <INPUT type=checkbox value=2 name=sample1 onclick="chk3(this)"> </TD>
<TD> A </TD>
<TD> <INPUT type=checkbox value=2 name=sample2 onclick="chk3(this)"> </TD>
<TD> B </TD>
<TD> <INPUT type=checkbox value=2 name=sample3 onclick="chk3(this)"> </TD>
<TD> C </TD>
<TD> <INPUT type=checkbox value=2 name=sample4 onclick="chk3(this)"> </TD>
<TD> D </TD>
</tr></table>
<script>
function chk3(obj){
var chk = document.getElementsByTagName('input');
var cnt = 0;
for(var i=0;i<chk.length;i++){
if(chk[i].type == 'checkbox' && chk[i].checked) cnt++;//如果需要,这里可以加上用名字区分,如下面这行
//if(chk[i].type == 'checkbox' && chk[i].name.indexOf('sample') >= 0 && chk[i].checked) cnt++;
if(cnt > 3) {
obj.checked = false;
alert('超过3个了');
}
}
}
</script>
obj.checked == true
<script>
function CheckChecked(elementObj)
{ var obj = document.getElementsByTagName("INPUT");
var j = 0;
for(var i=0;i<obj.length;i++)
{
if (obj[i].type=="checkbox"&&obj[i].name.indexOf("sample")==0)
if (obj[i].checked)
j ++;
}
if(j>3)
{
alert("错误,最多只能选择三项!");
elementObj.checked = false;
}
}
</script>
<TD> <INPUT type=checkbox value=2 name=sample1 onclick="CheckChecked(this);"> </TD>
<TD> A </TD>
<TD> <INPUT type=checkbox value=2 name=sample2 onclick="CheckChecked(this);"> </TD>
<TD> B </TD>
<TD> <INPUT type=checkbox value=2 name=sample3 onclick="CheckChecked(this);"> </TD>
<TD> C </TD>
<TD> <INPUT type=checkbox value=2 name=sample4 onclick="CheckChecked(this);"> </TD>
<TD> D </TD>
function chk3(obj){
var chk = document.getElementsByTagName('input');
var cnt = 0;
for(var i=0;i<chk.length;i++){
if(chk[i].type == 'checkbox' && chk[i].checked) cnt++;//如果需要,这里可以加上用名字区分,如下面这行
//if(chk[i].type == 'checkbox' && chk[i].name.indexOf('sample') >= 0 && chk[i].checked) cnt++;
if(cnt > 3) {
obj.checked = false;
alert('超过3个了');
}
}
}
</script>
这个是可以,可是怎么出现好多次 "超过3个了"!
急,咋解决啊?
obj.checked = false;
alert('超过3个了');
} 移到for外面啊
return;
<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title> 无标题文档 </title>
<script type="text/javascript">
function Check()
{
var flag = false;
var count = 0;
var inputs=document.getElementById("tableId").getElementsByTagName("input");
for(var i=0; i<inputs.length; i++)
{
if (inputs[i].checked)
{
count++;
}
}
flag = (count==3);
for(var i=0; i<inputs.length; i++)
{
if (!flag)
{
inputs[i].disabled = flag;
}
else if(!inputs[i].checked)
{
inputs[i].disabled = flag;
}
}
}
</script>
</head>
<body onload="Check()">
<table id="tableId">
<tr>
<td> <input type="checkbox" value="2" name="sample1" onclick="Check()" /> </td>
<td> A </td>
<td> <input type="checkbox" value="2" name="sample2" onclick="Check()" /> </td>
<td> B </td>
<td> <input type="checkbox" value="2" name="sample3" onclick="Check()"/> </td>
<td> C </td>
<td> <input type="checkbox" value="2" name="sample4" onclick="Check()" /> </td>
<td> D </td>
</tr>
</table>
</body>
</html>